简而言之,同构是服务端直出和客户端渲染的结合
当然,同构也没有这么好,具体的的选择还是看业务的,权衡开发 (迁移) 成本,性能影响等等诸多因素。
如果,我尝试下 React 服务端渲染,但又不想自己一开始就纠结于较繁琐的配置呢?
很多人的开发都会选用一个现有的脚手架开始,那么如何选用一个脚手架呢?
I'm looking for a very simple starter pack... I don't need all the hoopla.
的确,对一个脚手架项目而言,它需要有所有你想要的,不需要有你不想要的。
react 官方的脚手架 create-react-app 的 README 中提到 现阶段不支持直接提供服务端渲染。
比如这些:
这些脚手架各有各的特点,有的依赖多,有的依赖少,有的性能好,有的针对某一个痛点解决...
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 的项目使用者,受益者,希望能让更多的人看到这个项目,未来一起让他更好。
来源: https://juejin.im/post/5a5070d6f265da3e2b163b4b