最近几年都在做 to B 的内容,所以一直没接触 SSR,前几天公司的小朋友用 Next.js 做了个页面,迁移一个有五六个页面的普通后台网站的事情一直没搞定,所以就看了下相关资料,发现了“同构”这个东西。
SSR 主要就是服务端渲染好包含数据对页面,直接返回给浏览器解析渲染,因为得到的页面是结构化的并且包含数据的,所以对 SEO 比较友好。
同构最主要的目的是共享代码,以相对较小的代价得到 SEO 的优化。
Next.js 是一个现在很火的框架,它封装了很多东西,基本可以做到零配置实现一个 SSR 网站,缺点也很明显,它弄了一套自己的规范,比如路由系统,数据加载等。翻了下资料发现 React 本身是支持服务端执行的,所以我需要做的其实就只是注入数据而已。
尝试写了个 demo,其实就几个点解决了就行了,到没什么难度,React 自身也提供了 hydrate, renderToString 这样的函数
- 数据请求并注入
- 服务端动态编译
- 共享初始数据给页面