React: Boilerplate

 20th August 2020 at 2:19pm

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 则失去了它本来的简洁特性

react-boilerplate

优点
功能无比全面
揉入了模板作者的最佳实践
缺点
过于复杂,理解模板本身就非常耗时间
复杂的东西只靠社区维护容易烂尾,最好有商业公司维护

Next.js

优点
功能强大,主流的工具链都可以轻松整合
文档详细
社区庞大
缺点
由于它要实现 SSR,框架实现上与 React SPA 有区别,比如在 数据获取 这块比较复杂
版本更新快,有些功能接口不太稳定

Create App

Create App 是一个 React 项目模板生成器。

优点
按需选择你需要的工具链、库等
清晰明了,全面掌握
缺点
功能整合上不如 Next.js 全