本文发表于我的GitHub转载请注明出处css
简而言之,同构是服务端直出和客户端渲染的结合html
固然,同构也没有这么好,具体的的选择仍是看业务的,权衡开发(迁移)成本,性能影响等等诸多因素。react
若是,我尝试下 React服务端渲染,但又不想本身一开始就纠结于较繁琐的配置呢?git
不少人的开发都会选用一个现有的脚手架开始,那么如何选用一个脚手架呢?github
I'm looking for a very simple starter pack... I don't need all the hoopla.
的确,对一个脚手架项目而言,它须要有全部你想要的,不须要有你不想要的。typescript
react官方的脚手架create-react-app的README中提到 现阶段不支持直接提供服务端渲染。redux
好比这些:后端
这些脚手架各有各的特色,有的依赖多,有的依赖少,有的性能好,有的针对某一个痛点解决...数组
razzle 是一个把全部于服务端渲染相关的繁琐配置抽象成了单独的一个依赖,浏览器
给你相似于create-react-app的开发体验,
可是把剩下的架构决策权,好比 框架选用,路由系统的选择、数据获取方式全都交给了开发者本身,充分符合上面说的:
have everything you need and nothing you don't.
razzle 和上述提到的其余支持同构渲染的框架的 最大不一样 在于他能过抽象依赖,可以提供相似create-react-app
的开发体验,这就意味了给了开发者很大的自由度去选择本身顺手的,本身看得上眼的react生态里的库,razzle提供丰富的examples,帮助开发者可以快速的结合一些流行的成熟的库,好比用typescript进行开发,经过结合react-redux作状态管理,好比经过结合react-router作路由系统,经过结合react-loadable作到组件级别的代码分割和懒加载等等不少。
项目的主要的优势有:
理解还不是很成熟,但愿能与你们交流讨论。
笔者是razzle的项目使用者,受益者,但愿能让更多的人看到这个项目,将来一块儿让他更好。