Таким образом, мы недавно выбрали React в нашей компании в качестве интерфейсной технологии для создания нашего огромного веб-приложения для бизнеса. Говоря недавно, я имею в виду, что у нас нет предыдущего опыта работы с React (у нас есть огромный фон AngularJS), и, говоря огромное приложение, я имею в виду, что он действительно огромный и очень динамичный с множеством и множеством разных функций и функций.
Поскольку у нас будет много огромных компонентов, которые играют очень важную роль и имеют сложную логику внутри них, а потому, что мы хотим, чтобы они были легко подключаемыми и многоразовыми, мы хотим, чтобы они были как можно более изолированными от внешнего мира и других части нашего приложения, поскольку в противном случае из-за их размера и сложной функциональности было бы практически невозможно разработать и поддерживать их. Это причина, по которой мы решили НЕ использовать Redux, по крайней мере, вначале, в то время как мы разрабатываем только отдельные компоненты, потому что это ставит под угрозу изоляцию компонентов и делает невозможным понять всю логику потока данных приложения, когда существует так много сложных компоненты. Хотя я считаю, что наш выбор может быть неправильным, потому что, как я уже упоминал, у нас нет опыта с React.
Как я уже говорил, приложение очень динамично. Под этим я подразумеваю, что компоненты фактически отображаются данными. Мы используем различные классы поставщиков конфигурации, которые взаимодействуют с нашими конечными точками API, чтобы получить компоненты нашей конфигурации приложения, такие как конфигурации навигации, страницы, различные формы, списки и т.д., А затем попытаться отобразить компоненты, которые считываются из этой конфигурации.
Проблема состоит в том, что через пару недель, пытаясь получить импульс с помощью React и обнаружив правильные шаблоны и общие решения наших проблем, мы говорили в нашей команде, что, возможно, React не подходит для нас, поскольку это библиотека пользовательского интерфейса, а не фреймворк событий, и это не очень помогает нам, но просто добавляет правила рендеринга, которые мы должны время от времени ломать, чтобы добиться требуемой динамики и независимости компонентов.
Учитывая изоляцию компонентов и управление потоками данных, я лично слышал, что существует язык для разработки интерфейса Elm, который имеет довольно надежную архитектуру потока данных, где каждый компонент имеет свою собственную модель, которая отделена от других, но я не знаю стоит ли попробовать, так как это может вскоре отстать от наших больших требований.
Причина, по которой я пишу этот вопрос, заключается в том, что я надеюсь получить представление о людях, имеющих солидный опыт работы с огромными внешними приложениями. Я хотел бы знать, можно ли разработать такое приложение с React, независимо от того, подходит ли React для такой сложности и динамики, действительно ли нам нужен Redux или что-то еще, какой путь, методы, идеологии должны мы следовать. Если вы правильно поняли мой вопрос, это скорее сторона архитектуры, с которой мы боремся, чем технологическая. Может быть, мы просто идем по пути, который ведет к все большему количеству борьбы и сложности, но не к производству.