ssr
是什么
把vue的组件渲染为服务器端的Html字符串,发送给客户端,然后将静态标记混合为客户端上万川交互的应用程序
为什么
spa应用在使用时,自始至终都没有离开当前页面,响应的初次加载的量也要比多页面应用多,越是内容丰富的应用越是如此,
且单页面应用的内容都是由js生成的,所以不利于seo
而ssr能够解决这些问题,ssr返回的当前页面完整的html,seo自然没有问题,而首次加载同样是获取到已经渲染为html页面的内容,浏览器首先会解析Html而不会被庞大的js卡住
弊端
1,vue组件的钩子函数里只有beforeCreate和created在服务端可以触发,且在html被激活成spa时还会触发一次,注意一下
2,开发环境基于node.js
3,为服务造成更多负担
原理
app.js文件作为客户端与服务端的公共入口,导出创建vue实例的函数,客户端创建vue实例然后挂载到#app上,服务端则根据当前地址匹配路由创建对应的vue实例
服务端在接收到请求后,会根据url加载相应组件,获取数据创建一个读取 serverBundle 的 BunleRenderer,生成html返回客户端
客户端激活,客户端在获取到服务端的Dom后变为vue管理的动态Dom