13 webpack SSR打包

服务端渲染(SSR):核心思想是减少请求

渲染:HTML+CSS+JS+DATA->渲染后的HTML

优势:服务端内网机器拉取数据更快,一个HTML返回所有数据,减少白屏时间,对seo友好

实现思路:

  1. 服务端:使用 react-dom/server的 renderToString方法将React组件渲染成字符串
  2. 客户端:打包出针对服务端的组件

实现dome:https://github.com/CJFcheng/SSR_dome

webpack SSR打包过程中的问题:

  1. 浏览器的全局变量,node中没有document和window
    1. 将不兼容的组件根据打包环境进行设配
    2. 将fetch或ajax发送请求的写法改成isomorphic-fetch或者axios
  2. node无法解析css:
    1. 服务端打包通过ignore-loader忽略掉css解析
    2. 将style-loader替换成isomorphic-style-loader

解决样式不显示问题:设置html文件为模板,并带入link,通过设置占位符,一般为html的注释。再通过fs模块读入该文件为字符串,再把组件替换占位符。再渲染到页面

 

posted @ 2020-08-03 17:43  浪波激泥  阅读(67)  评论(0编辑  收藏  举报