赞
踩
CSR(客户端渲染) 是在浏览器中完成模板与数据的融合,并渲染出最终的 HTML 页面
SSR是在服务器中完成模板与数据的融合,并生成html字符串返回给浏览器
服务端渲染的流程如下:
同构渲染是将CSR和SSR结合起来使用,弥补各自的不足加强各自的优势。
同构渲染的“同构”一词的含义是,同样一套代码既可以在服务端运行,也可以在客户端运行
同构渲染分为首次渲染(即首次访问或刷新页面)以及非首次渲染。
首次渲染与服务器渲染流程是一致的,当首次访问或者刷新页面时,整个页面的内容是在服务端完成渲染的,浏览器最终得到的是渲染好的 HTML 页面。
浏览器会解析并渲染该页面,在解析过程中,浏览器会向服务器获取对应的script和link标签中的资源,这一步与 CSR 一致。
当JavaScript 资源加载完毕后,会进行以下操作:
当使用同构渲染时,编写的代码也会有所不同,需要考虑代码在不同环境的运行情况
当组件的代码在服务端运行时,由于不会对组件进行真正的挂载操作,即不会把虚拟 DOM 渲染为真实 DOM 元素,所以组件的 beforeMount 与mounted 这两个钩子函数不会执行
又因为服务端渲染的是应用的快照,所以不存在数据变化后的重新渲染,因此,组件的 beforeUpdate 与 updated 这两个钩子函数也不会执行。
所谓快照,指的是在当前数据状态下页面应该呈现的内容。
另外,在服务端渲染时,也不会发生组件被卸载的情况,所以组件的 beforeUnmount 与 unmounted 这两个钩子函数也不会执行
前面说了,同构渲染分为服务器渲染和客户端渲染两个部分。
服务器端渲染部分的实现与客户端渲染的逻辑基本一致,唯一的区别在于,在服务端渲染时,无须使用 reactive 函数为 data 数据创建响应式版本,并且 props 数据也无须是浅响应的。
客户端渲染时会再次执行服务器返回的JavaScript文件,但是并不会再次创建DOM,但是需要做下面这两件事:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。