随着前端技术的迅猛发展,前端渲染愈加成为前端开发的焦点。虽然 SPA(单页应用)给用户带来极佳的用户体验,但是却也带来了新的问题:对 SEO 不友好,初始加载时间过长等。因此,服务端渲染(SSR)应运而生。
在这篇文章中,我们将介绍 Vue.js 实现服务端渲染的所有步骤,并剖析每个步骤的作用和实现方式。
什么是服务端渲染?
服务端渲染是指将网页模板中的 HTML、CSS 和 JavaScript 代码在服务器端进行构建,然后将构建好的 HTML 直接返回给浏览器端。因为 vue.js 组件本身就是基于 HTML、CSS 和 JavaScript 的,所以这样做能够将 vue.js 的组件直接渲染到 HTML 上,这样既能够保证程序的高可用性,同时也能够为更好的SEO 优化提供便利。
Vue.js 服务端渲染的步骤
以下是 Vue.js 实现服务端渲染的步骤:
步骤 1:初始化和安装依赖
要实现服务端渲染,我们首先需要进行 vue.js 的初始化,并安装其他相关依赖。在启动文件中,我们需要先初始化 vue.js,然后安装其他相关依赖。
const Vue = require('vue') const server = require('express')() const renderer = require('vue-server-renderer').createRenderer()
步骤 2:创建 Vue 实例
接下来,我们需要创建一个 Vue 实例,这个实例在服务端渲染中起到很重要的作用。在这个实例中,我们定义了模板,路由和数据。路由使用 Vue 的 vue-router 实现,数据使用了 Vuex 的 store 实现。
const vm = new Vue({ store, router, render: h => h(App) })
步骤 3:创建路由和 store
Vue.js 的路由和 store 在服务端渲染中也是很重要的,可以帮助我们更好的管理和处理数据。在服务端渲染开始之前,我们需要创建路由和 store。
-- -------------------- ---- ------- ------ --------- ---- ------------ ------------------ ----- ------ - --- ----------- ------- - - ----- ---- ----- ------- ---------- ---- -- - ----- --------- ----- -------- ---------- ----- -- - ----- ----------- ----- ---------- ---------- ------- - - -- ------ ---- ---- ------ ------------- ----- ----- - --- ------------ ------ - - --
步骤 4:构建服务端渲染设置
创建好路由和 store 之后,我们需要构建服务端渲染的设置。在这里,我们需要创建一个可重用的函数,并通过插值将需要渲染的内容传递给渲染器。
-- -------------------- ---- ------- ----- -------------------------- - ----------- -------- -- - ----- --- - --- ----- ------ -------------- ------- --------------- ------- - -- ------------ -- ------ ---------------------------- -
步骤 5:创建服务端路由
当所有的设置都完成之后,我们需要创建服务端路由,并让服务端监听请求。当请求到来时,我们使用 Express 路由中间件来请求渲染器,将 HTML 返回给客户端。
-- -------------------- ---- ------- --------------- ----- ---- -- - ----- ------- - - ---- -------- ------ ------- ---- - ------------------------------- ------------------ -- - ------------- ------------ -- - ---------------- ----------- ----- ---------- -- -- ------------------- -- -- - ------------------- -- --------- -- ---- ------ --
案例演示
下面是一个简单的示例代码,用于演示 Vue.js 实现服务端渲染的方法。在这个例子中,我们会创建一个全局 Vue.js 组件 App
,然后在服务端和客户端都渲染。当客户端路由改变时,我们通过 vue-router 自动更新页面。
-- -------------------- ---- ------- ---- ---------- --- --------- ----- ------ ------ ----- ---------------- --------- ----- ---------- ------- ------------------------------- ------- ------ ---- ------------ ---- --------- ------- -------
-- -------------------- ---- ------- -- --------- ----- --- - -------------- ----- ------ - -------------------- ----- -------- - ----------------------------------------------- ----- --- - ---------------- ----- -------------------------- - ----------- -------- -- - ----- --- - --- ----- ------ -------------- ------- --------------- ------- - -- ------------ -- ------ ---------------------------- - ----- ------ - ------------------- ----- ----- - ------------------ --------------- ----- ---- -- - ----- ------- - - ---- -------- ------ ------- ---- - ------------------------------- ------------------ -- - ----- ----- - --------------------------- --------- ------ ------ ----- ---------------- ------------------------------- ------- ------ ---- ---------------------- ------- ------------------------------ -------------------------------- - ----------------- ------- --------------------------------- ------- ------- -- ------------ -- - ---------------- ----------- ----- ---------- -- -- ------------------- -- -- - ------------------- -- --------- -- ---- ------ --
-- -------------------- ---- ------- -- ------ ----- --- - -------------- ----- --- - -------------------- -------------- - --- ----- ------ ------- ------- - -- ------ --
结论
Vue.js SSR 对 SEO 优化很有帮助,同时也可以增加应用程序的可用性。我们在这篇文章中给大家提供了一个简单的 Vue.js 服务端渲染的实现步骤,你可以通过这些步骤在你的应用中加入服务端渲染功能。当然,除了 vue.js,其他的前端框架也都提供了相应的服务端渲染支持,你可以通过这些步骤将服务端渲染集成到你的项目中来。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f4c995c5c563ced5650d18