Комментарии 16
Не сталкивались ли вы с такой ситуацией? В своих проектах я всегда делю компоненты на dumb components и smart containers, такой проблемы не возникает.
Не сталкивались ли вы с такой ситуацией?Постоянно. Решение — не группировать в модули, иначе либо shared превратится в пышку, либо у вас появится пачка невнятных связующих модулей, либо просто модули будут ссылаться друг на друга.
Не существует единственного правильного пути
Это для меня в свое время оказалось большим недостатком. Когда нужно было быстро стартануть в проект, запутался в огромном количестве статей и советов, один лучше другого. Вся это react мешанина превратилась в конструктор "собери себе свой язык программирования", вот тебе ФП стиль, ООП, реактивный стиль, пот тебе строгая типизация (привет flow) и ворох либ к этому на любой вкус, написанных на 3 стандартах EcmaScript. В итоге быстрей удалось стартануть внезапно в ClojureScript'овском re-frame. Хотя до этого только бекенд на Clojure трогал.
Только одно замечание. React — не фреймворк, это библиотека.И именно это и дает такую свободу организации кода.
resolve: {
alias: {
"notification": path.resolve(rootDir, "web/notification/SmartNotification.min.js")
}
}
Обычно, React-приложение — это SPA. Почему нет советов по организации роут-компонентов? Отдельно хранить их или все в одном файле?
Придерживаюсь подхода, при котором на первом уровне в src разделяются каталоги по функциональности, один из них (views) — для компонентов (и только для компонентов, ну может каких-то функций типа локализации и/или форматирования) Реакта. Заходишь во views и там всё про рендеринг из props/context компонента App.
Дополню свими изысканиями через боль по теме:
Организация компонентов в проекте
Альтернативный заманчивый путь mobx-state-tree
Flow + tcomb заменяет prop-types, прибавляя возможностей.
Как организовать большое React-приложение и сделать его масштабируемым