服務端渲染SSR?

什么是服務端渲染SSR?

把Vue組件渲染為服務端的HTML字符串,將他們直接發(fā)送到瀏覽器,最后將靜態(tài)標記 “混合” 為客戶端上完全交互的應用程序。

為什么使用服務器渲染SSR?

1:更好的SEO,搜索引擎爬蟲抓取工具可以直接查看完全渲染的頁面

2:更快的內容到達時間 ( time - to - content )

服務端渲染做一些權衡

1:開發(fā)條件所限,Vue組件的某些生命周期鉤子函數不能使用

2:開發(fā)環(huán)境

3:更多的服務器端負載,在Node.js中渲染完整的應用程序,顯然會比僅僅提供靜態(tài)文件的Sever 更加大量占用 CPU 資源(CPU - intensive - CPU密集),因此如果你預料在高流量環(huán)境(high - traffic)下使用,請準備相應的服務器負載,并明智的采用緩存策略。

安裝所需模塊

搭建服務器環(huán)境

npm i express -S

安裝服務端渲染模塊

npm install vue-server-renderer --save

安裝vue模塊

npm i vue -S

安裝vue-route路由模塊

npm i vue-router -S

本地 配置 4000 端口查看頁面: http://localhost:4000/

查看代碼結構訪問:view-source:http://localhost:4000/

服務端渲染模塊使用

創(chuàng)建rendere實例

createRenderer({

template:模版文件

})

將實例解析為模版字符串

renderer.renderToString(vm)返回一個promise對象

在模版中插入解析后的html字符串

創(chuàng)建新的vue實例

為每個請求創(chuàng)建一個新的根 Vue 實例、

在多個請求之間使用一個共享實例很容易導致交叉請求狀態(tài)污染

服務端和客戶端的配置

服務端配置

使用webpack的自定義插件,server bundle將生成為可傳遞到 bundle renderer 的特殊json文件,JSON文件記錄了服務器配置的整個輸出。

默認名字為:'vue-ssr-server-bundle.json'

要生成這個json文件,在配置中引入模塊 vue-server-renderer/server-plugin,作為webpack的插件使用

客戶端配置

客戶端生成一份客戶端構建清單,記錄客戶端的資源,最終會將客戶端構建清單中記錄的文件,注入到所指定的模版中

生成的這個客戶端構建清單(client build manifest)

默認名字為 'vue-ssr-client-manifest.json'

要生成這個json文件,在配置中引入模塊vue-server-renderer/client-plugin,作為webpack的插件使用

文件說明

webpack.server.conf.js 服務端webpack配置

dev-server.js 得到服務端bundle和客戶端bundle和模版

server.js 創(chuàng)建后端服務

用到的模塊說明

memory-fs模塊

在開發(fā)階段vue-ssr-server-bundle.json文件在webpack的作用下,是存在內存中的,所以需要用到這個模塊來讀取內存中的文件,和node原聲fs模塊有相同的API

webpack-node-externals

在服務端渲染中,所需要的文件都使用require引入,不需要把node_modules文件打包進來。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 今天(5月2號)是我入職第一天,在簡短的內部培訓了一上午后,前端leader讓我先了解下什么是vue的服務器端渲染...
    阿諾貝爾閱讀 3,191評論 2 6
  • 什么是服務端渲染,簡單理解是將組件或頁面通過服務器生成html字符串,再發(fā)送到瀏覽器,最后將靜態(tài)標記"混合"為客戶...
    伯納烏的追風少年閱讀 2,117評論 0 1
  • ??服務端渲染簡而言之就是將本來要放在瀏覽器執(zhí)行創(chuàng)建的組件,放到服務端先創(chuàng)建好,然后生成對應的html將它們直接發(fā)...
    小小的開發(fā)人員閱讀 6,458評論 0 8
  • php .net傳統(tǒng)web客戶端發(fā)送一次請求 服務端返回html模板 su友好 SPA:單頁應用 vue reac...
    key君閱讀 551評論 0 0
  • 此文項目代碼:https://github.com/bei-yang/I-want-to-be-an-archit...
    LM林慕閱讀 2,391評論 2 5

友情鏈接更多精彩內容