随着React服务端渲染愈来愈流行,笔者也想尝尝鲜,通过半个月的折腾,笔者把原先的客户端渲染项目,经过结合 next.js 构建了一个服务端渲染的同构项目。再加上开启服务器页面缓存,以及静态资源CDN加速优化,最终使得 网站首屏渲染时间在0.6秒(即:DOMContentLoaded 的时间)左右,大大提升了页面的响应速度,进一步提高用户体验。
很显然,这是移动端网站,选用了 React16 + next.js4 + antd-mobile2 + redux 的技术栈,算是笔者学习React 两年来第一个服务端渲染的项目。因为爱折腾,笔者喜欢本身动手搭脚手架,期间参考了各路大牛的源码和想法,很是感谢!因此此次作下总结,若是刚好能帮到在React服务端渲染方面有困惑的同窗,何乐而不为?css
react-router
。更多详情 组件,能够复用的模块要写成组件;不能复用,可是逻辑比较复杂的模块也应该写成组件。其他的,都写在pages里就好了。组件分为无状态组件,和有状态组件,须要指出的是,在next.js的架构中,若是你写的是无状态组件,能够不用引入 react,如:前端
export default ({ text }) => ( <div className="h100 flex jc-center ai-center"> <i className="i-loading rotate font32 c999" /> <span>{text || '加载中...'}</span> </div> )
npm run export
,资源将被打包到根目录下的 outCDN 中。