VUE基於NUXT的SSR 服務端渲染

2021-09-05 01:39:51 字數 1708 閱讀 7299

server side rendering(服務端渲染)

原理

將 html 在服務端渲染,合成完整的 html 檔案再輸出到瀏覽器。

適用場景

nuxt 

作用就是在 node.js 上進一步封裝,然後省去我們搭建服務端環境的步驟,只需要遵循這個庫的一些規則就能輕鬆實現 ssr。

可以作為乙個 node.js 應用跑在伺服器上,也可以把整站直接編譯為靜態 html。另外這個框架支援自動生成路由,用來寫展示型的頁面是非常不錯的選擇。

nuxt 能為我們做什麼

安裝流程

$ npm install -g vue-cli

$ vue init nuxt/starter $ cd $ npm install

$ npm run dev

nuxt.js 會監聽 pages 目錄下的改變,新增新 page 的時候不需要重啟服務

next.js

來自zeit的團隊在react的基礎和元件模型上構建了next.js,同時還提供了乙個關鍵擴充套件:通過使用名為getinitialprops()的元件生命週期鉤子方法,框架能夠在伺服器上進行初始渲染,如果需要的話,還可以在客戶端繼續進行渲染。不過這個高階特性是乙個很小卻功能強大的框架所額外提供的。

next提供了非常豐富的生態環境,特別是它的example,包含了多種情況下的原始碼,讓學習者很容易搭建起乙個多功能的next框架,客戶端有的東西,服務端基本都有。

webpack的各項配置,next整合了webpack的很多配置,熱更新是必備品,還支援提供next.config.js的方式匯入自己定義的配置。

你可以使用less、scss、style-in-component、css等各種樣式寫法。

支援redux、redux-saga、或者不用。

各種的支援都包含在webpack中了。

支援自定義的babelrc配置。

對於react的版本的支援也在維護者的維護中不斷更新。

支援preact。

簡單易用,就跟寫 php 一樣乙個檔案乙個頁面了,但缺點也很明顯,其實它是通過改變正常 react + webpack 的**書寫習慣來繞過前後端同構的坑,所以也引入了一些新的問題:

等靜態檔案只能放在 static 目錄下,不能通過 require 來引入,也就是沒辦法通過 webpack 來進行模組化管理,如果各個元件有自身依賴的,也只能一股腦放 static 裡,也很難實現版本管理控制瀏覽器快取。

樣式同樣也沒辦法通過 webpack 進行模組化管理,只能通過 style 標籤嵌入或直接內聯。

簡單地說,很適合快速搭建簡單站點,但自由度不高,且帶樣式或的 react 元件無法直接使用,個人看法是乙個用自由度和通用性來換取易用性的框架。

其他方法

google 可以正常爬取和渲染乙個純 js 動態生成的**,上傳 sitemap 就可以了。

直接生成靜態頁面由 cdn 分發。有些新技術還可以在 static gen 同時支援 pwa,比如 gatsbyjs。

掘金是未登入使用者使用 ssr,不錯的思路。

要分清楚什麼時候用 mvvm,mvvm 其實就是 modelview 非常方便定義頁面的各種邏輯和改變頁面資料,如果是傳統的**,前端沒啥邏輯,就沒有必要上 mvvm

安裝nuxt 一天上手Nuxt基於vue服務端渲染

下面會列舉一下開發中的盲點。目錄結構 布局layout layout中default.vue檔案加入以下 當然寫法有很多,根據自己喜歡的來。template 頭部123 新增error.vue頁面引導錯誤404頁面。404!src static 404.png width 240 2.監聽頁面間引數...

vue服務端渲染nuxt(一)

由於專案需要,所以對nuxt進行了初步學習,自己也進行總結一下,方便以後查詢瀏覽 2 如果你的npm版本在5.2.0,你可以使用下面的命令進行安裝 3 它在安裝的時候會提示你是否安裝一些依賴包,有後台的,例如koa express。還會問你是否安裝一些ui庫等,這些看個人或者整體的專案而決定。安裝完...

Vue2 SSR 的優化之旅

自從 vue2 出正式版後,就開始了 ssr 之旅,不過之前用的都是虛擬主機,部署不了 ssr,所以也只是在本地寫著玩,雙 11 的時候,買了個某雲主機,正式開始了 ssr 之旅,然後過程並不順利,部署,執行都沒問題,但是發現記憶體洩漏嚴重,1核1g記憶體的主機根本負擔不了,沒什麼訪問量的情況下,幾...