服务端渲染
服务端渲染(Server-Side Rendering,SSR)是指在服务器端生成完整的HTML
页面并将其返回给浏览器,与传统的客户端渲染方式相反。
在传统的客户端渲染中,浏览器首先接收到一个空的HTML
页面,在页面加载期间,浏览器使用JavaScript
来动态生成页面内容。而在服务端渲染中,服务器端负责构建整个HTML
页面,包括将数据和组件渲染为HTML,然后将整个HTML
页面返回给浏览器。
服务端渲染的优势包括:
更快的首次加载时间:由于浏览器直接接收到完整的HTML页面,网页可以更快地呈现给用户。
更好的SEO:搜索引擎爬虫可以直接抓取到完整HTML页面的内容,不需要通过JavaScript解析。
更好的性能:对于复杂的应用程序,服务端渲染可以分担客户端的负载,减轻浏览器的负担,并提供更流畅的体验
SSR 的响应性在服务端是不必要的,因为没有用户交互和 DOM 更新。为了更好的性能,默认情况下响应性在 SSR 期间是禁用的
在
SSR
期间,只有beforeCreate
和created
这两个生命周期钩子会被调用,其他像mounted
或updated
这样的生命周期钩子不会在 SSR 期间被调用,而只会在客户端运行。因此,我们应该避免在beforeCreate
和created
钩子中使用会产生副作用且需要被清理的代码SSR
适用于需要更快的到达时间的场景,优势在于慢网络和运行缓慢的设备场景。相比传统的SPA
,SSR
服务器渲染标记在服务端渲染HTML
后即可显示,用户会更快的看到首屏渲染页面SSR
不适用于同构资源的处理。在使用三方API
时必须保证运行不报错,需要特殊处理使其支持服务端和客户端都可运行。结合Vue
的钩子来说,能在SSR
中调用的生命周期只有beforeCreate
和created
VNode 是 Vue 中用来描