詳解Nuxt.js Vue服務(wù)端渲染摸索
本文采用nuxt進(jìn)行服務(wù)端渲染https://zh.nuxtjs.org/
Nuxt.js 十分簡(jiǎn)單易用。一個(gè)簡(jiǎn)單的項(xiàng)目只需將 nuxt 添加為依賴組件即可。
Vue因其簡(jiǎn)單易懂的API、高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng),受到很多前端開發(fā)人員的青睞。國內(nèi)很多公司都在使用vue進(jìn)行項(xiàng)目開發(fā),我們正在使用的簡(jiǎn)書,便是基于Vue來構(gòu)建的。
我們知道,SPA前端渲染存在兩大痛點(diǎn):(1)SEO。搜索引擎爬蟲難以抓取客戶端渲染的頁面meta信息和其他SEO相關(guān)信息,使網(wǎng)站無法在搜索引擎中被用戶搜索到。(2)用戶體驗(yàn)。大型webApp打包之后的js會(huì)很龐大,于是就有了按模塊加載,像require.js一樣,異步請(qǐng)求。webpack盛行,就變成了代碼分割。即便如此,受制于用戶設(shè)備,頁面初次渲染還是有可能很慢,白屏等待時(shí)間太長(zhǎng),對(duì)日益挑剔的用戶群體來說,無法接受。
因此,對(duì)于那些展示宣傳型頁面,如官網(wǎng),必須進(jìn)行服務(wù)端渲染(SSR)。安裝 nuxt.js
$ vue init nuxt-community/starter-template <你項(xiàng)目的名字> // 后面 安裝依賴你懂的
// 安裝koa版本 $ vue init nuxt/koa <你的項(xiàng)目名字>
運(yùn)行
npm run dev
應(yīng)用現(xiàn)在運(yùn)行在 http://localhost:3000
注意:Nuxt.js 會(huì)監(jiān)聽 pages 目錄中的文件變更并自動(dòng)重啟, 當(dāng)添加新頁面時(shí)沒有必要手工重啟應(yīng)用。
路由
nuxt 是根據(jù)pages 目錄結(jié)構(gòu)生成路由配置
異步數(shù)據(jù)asyncData
注意必須要頁面組件才能調(diào)用asyncData(就是components下是不能調(diào)用,必須路由的頁面才行)
異步數(shù)據(jù)beforeCreate,created
注意:在任何vue組件的生命周期內(nèi),只有beforeCreate和created這兩個(gè)鉤子會(huì)在瀏覽器端和服務(wù)端均被調(diào)用;其他的鉤子都只會(huì)在瀏覽器端調(diào)用。
使用插件mint-ui
首先我們需要在plugins文件夾中添加插件文件 mint-ui.js
import Vue from "vue"; import Mint from "mint-ui"; Vue.use(Mint);
在nuxt.config.js中配置plugins字段
/**
* 配置第三方插件
*/
plugins: [{ src: "~plugins/mint-ui", ssr: true }],
//同時(shí)nuxt還支持區(qū)分只在瀏覽器中運(yùn)行和只在服務(wù)端運(yùn)行的插件
//只在瀏覽器運(yùn)行:配置nuxt.config.js中plugins字段,將引入的插件屬性設(shè)置為ssr: false
//只在服務(wù)端運(yùn)行:直接在webpack打包server.bundle.js文件中,將process.SERVER_BUILD設(shè)置為true即可
layout布局
1.nuxt.js實(shí)現(xiàn)了一個(gè)新的概念,layout布局,我們可以通過layout布 局方便的實(shí)現(xiàn)頁面的多個(gè)布局之間方便的切換。本項(xiàng)目中實(shí)現(xiàn)了三種常用的布局,即:1)兩欄布局,左欄固定,右欄動(dòng)態(tài)寬度;2、錯(cuò)誤頁提示,頁面中間一個(gè)提示框的布局方案;3、純白頁面布局。
具體開發(fā)的頁面中,如果使用默認(rèn)布局,則不需指定頁面的布局,nuxt框架會(huì)自動(dòng)對(duì)沒有指定布局的頁面和default布局進(jìn)行關(guān)聯(lián)。如果需要指定布局,則在layout字段中對(duì)布局進(jìn)行指定。如圖在login頁面中對(duì)full布局進(jìn)行了指定。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解vue服務(wù)端渲染(SSR)初探
- 詳解基于 Nuxt 的 Vue.js 服務(wù)端渲染實(shí)踐
- 基于vue-ssr服務(wù)端渲染入門詳解
- 詳解Vue基于 Nuxt.js 實(shí)現(xiàn)服務(wù)端渲染(SSR)
- 詳解如何使用Vue2做服務(wù)端渲染
- Vue服務(wù)端渲染和Vue瀏覽器端渲染的性能對(duì)比(實(shí)例PK )
- vue服務(wù)端渲染的實(shí)例代碼
- Vue 2.0 服務(wù)端渲染入門介紹
- 詳解基于vue的服務(wù)端渲染框架NUXT
- vue服務(wù)端渲染添加緩存的方法
- vue服務(wù)端渲染頁面緩存和組件緩存的實(shí)例詳解
- vue服務(wù)端渲染操作簡(jiǎn)單入門實(shí)例分析
相關(guān)文章
antdv vue upload自定義上傳結(jié)合表單提交方式
這篇文章主要介紹了antdv vue upload自定義上傳結(jié)合表單提交方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法
今天小編就為大家分享一篇axios全局注冊(cè),設(shè)置token,以及全局設(shè)置url請(qǐng)求網(wǎng)段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
使用el-form之表單校驗(yàn)自動(dòng)定位到報(bào)錯(cuò)位置問題
這篇文章主要介紹了使用el-form之表單校驗(yàn)自動(dòng)定位到報(bào)錯(cuò)位置問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

