vue服务端渲染在项目中的应用
很多项目首页的渲染方案,都是通过js去拉接口数据回来然后动态生成dom结构,这样有个不好的地方,就是你需要通过一个loading来遮挡页面的初始化渲染,为了视觉上的体验,不能让用户看到页面从无到有这么的一个加载过程,影响体验效果,通过chrome查看source里面的页面文件,你就只看到一个简单的html,页面结构是没有的,这样也不利于现在搜索引擎去爬页面数据,不利于SEO,一是考虑页面能尽快的呈现给用户、二是SEO,那么服务端渲染就很有必要了
服务端渲染,既在返回给客户端的html是已经生成好了的结构,这样会加大传输大小,但这点大小通过优化就不值一提了,更快的把内容呈现给用户,增加用户页面停留时间,传统渲染直接php框架模版语法或者java、python等语言的,这里写出vue的服务端渲染(reactjs也是有的),我们项目中其实是用到了renderToString来先生成字符串,赋值到html去,做了两次打包处理,我们是在打包阶段做的服务端渲染,不是那种通过node,传统意义上的服务端渲染
|
|
/第一步生成ss.bundle.js文件、通过ss.bundle.js打包成html字符串、赋值给HtmlWebpackPlugin插件/
ssr阶段执行钩子
我们有时会在某些钩子函数里面用到window,但是在ssr阶段并不存在这个对象,所以应该添加typeof判断,ssr阶段methods、mounted、beforeMounted等不调用,写入这些阶段不需要判断,但是像computed、beforeCreate、created这种的话就得加了