服務端執行前端框架**,生成網頁內容,返回客戶端,客戶端啟用為spa。
現代化服務端渲染,或稱為同構渲染,應用稱為服務端渲染應用或同構應用
把資料和模板拼接為完整的html檔案
資料渲染發生在服務端
資料渲染發生在客戶端
不利於seo
對於每個路由,首次訪問時都會由伺服器執行動態編譯輸出html檔案,然後再在客戶端啟用spa。
如果只是針對少數路由(頁面)需要輸出靜態html檔案,可以採用預渲染方式,在構建時針對這些頁面生成靜態html檔案即可。
使用 webpack,你可以使用 prerender-spa-plugin 輕鬆地新增預渲染
專案自定義的模板檔案
nuxt的配置檔案,自定義了路由規則表
存放頁面的資料夾,其中layouts資料夾存放作為所有頁面都需要的布局元件,這裡沒有使用nuxt預設的約定式路由,而是自定義了路由
管理工具方法
request.js檔案
封裝axios模組作為專案的請求工具方法
集中管理api請求,方便維護與重用api請求
nuxt會自動載入store中的模組
在store/index.js中直接定義state、actions、mutations、getters等,匯出這些變數,nuxt會根據這些匯出項自動建立store例項
state需要定義為乙個函式,為不同的請求生成乙份state物件
放置路由中介軟體的資料夾,檔名就是中介軟體的名稱
使用了簡單的html5表單驗證字段
服務端渲染模式下,不僅僅要能在客戶端拿到狀態資料,也需要在服務端拿到狀態資料(比如,使用者關閉應用後,又馬上開啟時,不能再要求使用者登入),使用了jwt方案實行。
執行在乙個頁面或一組頁面渲染之前的自定義函式
服務端路由守衛,可以對路由導航到的頁面渲染之前進行攔截,比如針對需要許可權的頁面,需要在導航到該頁面時攔截,驗證是否有許可權。
因為在同構渲染中,首次渲染時,無法使用客戶端路由守衛進行攔截操作。
資料預獲取,將資料先獲取到,然後渲染頁面,這樣可以獲得seo優化
在每個元件定義了asyncdata函式後,會由nuxt自動呼叫asyncdata函式來做預獲取資料操作
預設情況下,查詢字串的引數值更改不是響應式的,不會引起檢視的更新
可以在元件選項物件中設定watchquery屬性來監聽查詢字串中某些引數的變化,可以自動呼叫asyncdata等函式
nuxt的熱更新有時候會有問題,需要重新重新整理瀏覽器才能看到效果
在後端返回的資料中,很多時候會在字串中混入零寬字元,這些字元是隱藏的,瀏覽器不會對這些字元顯示出來,但這些字元又是真實存在的
比如使用string.prototype.length屬性就可以看到顯示出來的字元數與length不一致
去除字串中的零寬字元很重要,不然會導致各種問題出現
請求資料時想要帶上使用者token,但使用者token在vuex的store中管理,請求模組並不能拿到這個資料。
如果在檢視中通過上下文物件context拿時,又需要對每個api請求模組進行改造,讓它們都接收相同的token引數,這無疑增加了重複的工作,不利於維護
通過使用axios的請求***,將token在***中配置到請求物件上,這樣就不需要在每個請求api中接收這個相同的引數了,集中管理,利於維護
通過外掛程式機制,將***寫在外掛程式裡,外掛程式可以拿到上下文物件,從而可以獲取到token
外掛程式機制
在執行vue.js應用程式之前,執行的**
文章正文內容支援markdown語法,將markdown語法轉換為html語法輸出
參考 簡單部署
壓縮發布包
把發布包傳到服務端
解壓發布包
安裝依賴
啟動服務
pm2包管理node服務
pm2常用命令
自動部署
使用ci/cd方式實現
github actions實現自動部署
前置條件:linux伺服器 + 上傳github
配置到專案的settings/secrets中
配置github actions執行指令碼
修改pm2的配置檔案pm2.config.json
提交更新:
檢視自動部署狀態
訪問**
提交更新
服務端渲染SSR的理解
ssr服務端渲染server side render就是當進行請求時,頁面上的內容是通過服務端渲染生成的,瀏覽器直接顯示服務端返回的html即可。通常在構建乙個普通的spa單頁應用時,就是構建的客戶端渲染的應用,csr客戶端渲染client side render就是當進行請求時,頁面上的內容是通重...
VUE基於NUXT的SSR 服務端渲染
server side rendering 服務端渲染 原理 將 html 在服務端渲染,合成完整的 html 檔案再輸出到瀏覽器。適用場景 nuxt 作用就是在 node.js 上進一步封裝,然後省去我們搭建服務端環境的步驟,只需要遵循這個庫的一些規則就能輕鬆實現 ssr。可以作為乙個 node....
服務端渲染(SSR)和客戶端渲染(CSR)的區別
一 ssr 服務端渲染 server side render 將元件或頁面通過伺服器生成html字串,再傳送到瀏覽器,簡單理解下來,發了乙個請求,伺服器返回的不是介面資料,而是一整個頁面的html結構,再結合介面之前定義的css把頁面展示出來 vue 伺服器渲染文件。ssr優點 例如seo 因為訪問...