1. 程式人生 > >解析Nuxt.js Vue服務端渲染摸索

解析Nuxt.js Vue服務端渲染摸索

分割 tro 框架 RoCE recreate 變更 proc login 錯誤

本篇文章主要介紹了詳解Nuxt.js Vue服務端渲染摸索,寫的十分的全面細致,具有一定的參考價值,對此有需要的朋友可以參考學習下。如有不足之處,歡迎批評指正。

Nuxt.js 十分簡單易用。一個簡單的項目只需將 nuxt 添加為依賴組件即可。
Vue因其簡單易懂的API、高效的數據綁定和靈活的組件系統,受到很多前端開發人員的青睞。國內很多公司都在使用vue進行項目開發,我們正在使用的簡書,便是基於Vue來構建的。
我們知道,SPA前端渲染存在兩大痛點:(1)SEO。搜索引擎爬蟲難以抓取客戶端渲染的頁面meta信息和其他SEO相關信息,使網站無法在搜索引擎中被用戶搜索到。(2)用戶體驗。大型webApp打包之後的js會很龐大,於是就有了按模塊加載,像require.js一樣,異步請求。webpack盛行,就變成了代碼分割。即便如此,受制於用戶設備,頁面初次渲染還是有可能很慢,白屏等待時間太長,對日益挑剔的用戶群體來說,無法接受。
因此,對於那些展示宣傳型頁面,如官網,必須進行服務端渲染(SSR)。安裝 nuxt.js


$ vue init nuxt-community/starter-template <你項目的名字>
// 後面 安裝依賴你懂的
// 安裝koa版本
$ vue init nuxt/koa <你的項目名字>

運行


npm run dev

應用現在運行在 http://localhost:3000
註意:Nuxt.js 會監聽 pages 目錄中的文件變更並自動重啟, 當添加新頁面時沒有必要手工重啟應用。

路由

nuxt 是根據pages 目錄結構生成路由配置

異步數據asyncData

註意必須要頁面組件才能調用asyncData(就是components下是不能調用,必須路由的頁面才行)

異步數據beforeCreate,created

註意:在任何vue組件的生命周期內,只有beforeCreate和created這兩個鉤子會在瀏覽器端和服務端均被調用;其他的鉤子都只會在瀏覽器端調用。

使用插件mint-ui

首先我們需要在plugins文件夾中添加插件文件 mint-ui.js


import Vue from "vue";
import Mint from "mint-ui";
//歡迎加入前端全棧開發交流圈一起學習交流:864305860 
Vue.use(Mint);

在nuxt.config.js中配置plugins字段


/**
 * 配置第三方插件
 */
 plugins: [{ src: "~plugins/mint-ui", ssr: true }],
 //歡迎加入前端全棧開發交流圈一起學習交流:864305860
//同時nuxt還支持區分只在瀏覽器中運行和只在服務端運行的插件
 
//只在瀏覽器運行:配置nuxt.config.js中plugins字段,將引入的插件屬性設置為ssr: false
//只在服務端運行:直接在webpack打包server.bundle.js文件中,將process.SERVER_BUILD設置為true即可

layout布局

1.nuxt.js實現了一個新的概念,layout布局,我們可以通過layout布 局方便的實現頁面的多個布局之間方便的切換。本項目中實現了三種常用的布局,即:1)兩欄布局,左欄固定,右欄動態寬度;2、錯誤頁提示,頁面中間一個提示框的布局方案;3、純白頁面布局。
具體開發的頁面中,如果使用默認布局,則不需指定頁面的布局,nuxt框架會自動對沒有指定布局的頁面和default布局進行關聯。如果需要指定布局,則在layout字段中對布局進行指定。如圖在login頁面中對full布局進行了指定。

結語

感謝您的觀看,如有不足之處,歡迎批評指正。

原文地址:https://segmentfault.com/a/1190000017383562

解析Nuxt.js Vue服務端渲染摸索