我们采用了以下项目结构
|- 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
文件夹中。
我们现在面临的唯一问题是热module重新加载被破坏,即每当我们.jsx
在pages
或components
目录中编辑文件时,我们必须手动重新加载页面以查看生效的更改(它不会影响 CSS 文件)。这是我们已经习惯的事情,因此不会严重影响我们。
我的问题是,是否有任何我们不知道的即将发生的灾难?