Boilerplate 是模板,即一个 React 项目一开始的代码结构。React 的 boilerplate 提供良好的开发体验,集成了相关工具链,如 Babel、Webpack、CSS Postprocessor 等,使你无需再手动配置,开箱即用。有些会将模板作者对开发 React 项目的最佳实践揉合其中,如 react-boilerplate。还有些跟框架是相绑定的,如 Next.js。
下面我对这些 boilerplate 做一个对比。结论是:
- 对于 SPA,使用 Create App 而不是 create-react-app。前者更灵活不黑盒
- 对于需要 SSR 的站点,选择 Next.js 或者 Gatsby
Create React App
优点 |
---|
简单,方便上手 |
社区庞大 |
缺点 |
---|
不够强大,比如没有整合 PostCSS、LESS |
定制困难,需要配合社区解决方案(如 react-app-rewired)来解决,增加了不稳定性 |
一旦 eject 则失去了它本来的简洁特性 |
优点 |
---|
功能无比全面 |
揉入了模板作者的最佳实践 |
缺点 |
---|
过于复杂,理解模板本身就非常耗时间 |
复杂的东西只靠社区维护容易烂尾,最好有商业公司维护 |
Next.js
优点 |
---|
功能强大,主流的工具链都可以轻松整合 |
文档详细 |
社区庞大 |
缺点 |
---|
由于它要实现 SSR,框架实现上与 React SPA 有区别,比如在 数据获取 这块比较复杂 |
版本更新快,有些功能接口不太稳定 |
Create App
Create App 是一个 React 项目模板生成器。
优点 |
---|
按需选择你需要的工具链、库等 |
清晰明了,全面掌握 |
缺点 |
---|
功能整合上不如 Next.js 全 |