React项目的文件结构

结构图

结构图

为什么组件的文件夹里面还有其他组件, hooks也没有全部放在一个文件夹里面

就近原则。这样做会更好维护。只有能公用的文件,才适合放在公用文件夹里。

组件的文件夹里面拥有的和文件夹同名的组件和index.ts以外的其他文件全部都是私有文件(只被这个文件夹里面的组件引用的文件)。

如果就算只被用一次的文件也要放公共的文件夹里的话,到时候改的时候首先还得确认影响范围,甚至这个确认的环节都有可能忘掉,然后万一影响到别的组件就很容易出BUG,结果就是可维护性变差。

为什么在LikeButton里面不直接在index.tsx里面写组件

因为那样会导致打开编辑器之后上面一排全是index.tsx, 找文件十分不方便。

helpers不等于utils

虽然很多人把helpers当作utils的别名,但是区分一下会更合适一点。

  • helpers: 只能在某个特定项目里面才有用, 和别的项目共享没有意义(比如为博客的文章按时间或者标题排序用的函数)

  • utils: 在任何项目中都有可能用得到的函数(比如lodash)