React 服务端渲染与预渲染

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React 服务端渲染与预渲染相关的知识,希望对你有一定的参考价值。

参考技术A

仍是SPA

需要用到 react-router-config 这个库,它可以根据 route 匹配到对应的组件,拿到当前route对应的组件是实现路由同步的关键,再通过组件的静态API方法获取接口数据

主要是在服务端通过组件的静态API方法获取接口数据后创建store,再通过 window. store = store 传递给前端

主要是要将前端的 js 文件附加在服务端渲染的模板 html 文件中

服务端渲染的应用场景:一般只是对重要的页面,如首页才会做,可以提高首屏加载速度,利于SEO。其他页面实际上仍是CSR

预渲染不像服务器渲染那样即时编译 HTML,它只在构建时为了特定的路由生成特定的几个静态页面,等于我们可以通过 Webpack 插件将一些特定页面组件 build 时就编译为 html 文件,直接以静态资源的形式输出给搜索引擎。

1、SPA变为MPA
2、必须使用 History 路由,而不能使用 Hash 路由,所以对于没有做预渲染的页面往往需要服务器配置路由,如nginx 配置如下:

3、对于动态路由,如 /detail/:id ,是不支持的,不过可以换成 query 路由,如 /detail?id=
4、应用场景比较有限,能想到的就是骨架屏应用,比如首页,为了速度,我们会用一些骨架屏组件,如果不做预渲染,则骨架屏组件会等整个js文件加载完毕才开始渲染,体验不好。如果做了预渲染,则当html文件加载完毕时就会开始渲染了

react.js在服务器端渲染有啥好处?渲染是怎么个流程

服务端渲染与react没有直接关系,你可以理解为服务端渲染时一段js,引入到react或者vue里面都能使用,不引入也没关系。使用服务端渲染的场景是当我们要求渲染时间尽量快、页面响应速度快时(优点),才会采用服务器渲染,并且应该“按需”对页面进行渲染 ——“首次加载/首屏”。即服务端渲染的优势在于:由中间层( node端 )为客户端请求初始数据、并由node渲染页面。react 服务端渲染流程服务端渲染路线:2. 请求一个html -> 2. 服务端请求数据( 内网请求快 ) -> 3. 服务器初始渲染(服务端性能好,较快) -> 4. 服务端返回已经有正确内容的页面 -> 5. 客户端请求js/css文件 -> 6. 等待js文件下载完成 -> 7. 等待js加载并初始化完成 -> 8. react-dom( 客户端 )把剩下一部分渲染完成( 内容小,渲染快 )react.js在服务器端渲染有什么好处?渲染是怎么个流程 参考技术A 黄忠斩夏侯渊诸葛亮“东和孙权”之说,以致东吴与曹操联合。于禁、庞德与关羽交战,关羽大战庞德,水淹七军,取得一生最后的业绩。因中曹仁暗箭,右臂中毒,神医华佗赶到为关羽刮骨疗毒。[1]

以上是关于React 服务端渲染与预渲染的主要内容,如果未能解决你的问题,请参考以下文章

React 服务端渲染完美的解决方案

2019大前端热门技术流之React服务器端渲染NextJS实战

React 服务器渲染原理解析与实践

React 服务器渲染原理解析与实践

react服务端渲染(同构)

react服务端渲染框架