Мы прибегли к этой следующей структуре проекта
|- pages
|- <page_name>
|- index.js # To do a default export of the main component
|- MainComponent.jsx # Contains other subcomponents
|- main-component.css # CSS for the main component
|- OtherComponents.jsx # more than 1 file for child components that are used only in that page
|- __tests__ # Jest unit and snapshot tests
|- components
|- index.js # Exports all the default components of each component as named exports
|- CommonCmpnt1
|- CommonCmpnt1.jsx
|- common-cmpnt-1.css
|- index.js # To default export the component
|- __tests__
|- CommonCmpnt2
|- CommonCmpnt2.jsx
|- common-cmpnt-2.css
|- index.js # To default export the component
|- __tests__
Чтобы уточнить, ничего не сломалось, и это работает удивительно хорошо.У нас есть компоненты, которые повторно используются на нескольких страницах в каталоге components
, куда мы импортируем следующим образом
// Assuming we are inside MainComponent.jsx
// ...
import { CommonCmpnt1 } from '../../components'; // We even take it a step further and use absolute imports
Кроме того, компоненты, которые используются только один раз, находятся рядом в его папке pages
.
Единственная проблема, с которой мы сейчас сталкиваемся, это , перезагрузка Горячего модуля не работает, т.е. всякий раз, когда мы редактируем файл .jsx
внутри каталога pages
или components
, мынеобходимо вручную перезагрузить страницу, чтобы увидеть внесенные изменения (это не влияет на файлы CSS).Это то, к чему мы привыкли, и поэтому оно не оказывает на нас серьезного влияния.
Мой вопрос: есть ли какая-то надвигающаяся катастрофа, о которой мы не знаем?