詳解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ā)人員的青睞。國(guó)內(nèi)很多公司都在使用vue進(jìn)行項(xiàng)目開發(fā),我們正在使用的簡(jiǎn)書,便是基于Vue來(lái)構(gòu)建的。
我們知道,SPA前端渲染存在兩大痛點(diǎn):(1)SEO。搜索引擎爬蟲難以抓取客戶端渲染的頁(yè)面meta信息和其他SEO相關(guān)信息,使網(wǎng)站無(wú)法在搜索引擎中被用戶搜索到。(2)用戶體驗(yàn)。大型webApp打包之后的js會(huì)很龐大,于是就有了按模塊加載,像require.js一樣,異步請(qǐng)求。webpack盛行,就變成了代碼分割。即便如此,受制于用戶設(shè)備,頁(yè)面初次渲染還是有可能很慢,白屏等待時(shí)間太長(zhǎng),對(duì)日益挑剔的用戶群體來(lái)說(shuō),無(wú)法接受。
因此,對(duì)于那些展示宣傳型頁(yè)面,如官網(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)聽(tīng) pages 目錄中的文件變更并自動(dòng)重啟, 當(dāng)添加新頁(yè)面時(shí)沒(méi)有必要手工重啟應(yīng)用。
路由
nuxt 是根據(jù)pages 目錄結(jié)構(gòu)生成路由配置
異步數(shù)據(jù)asyncData
注意必須要頁(yè)面組件才能調(diào)用asyncData(就是components下是不能調(diào)用,必須路由的頁(yè)面才行)
異步數(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布局,我們可以通過(guò)layout布 局方便的實(shí)現(xiàn)頁(yè)面的多個(gè)布局之間方便的切換。本項(xiàng)目中實(shí)現(xiàn)了三種常用的布局,即:1)兩欄布局,左欄固定,右欄動(dòng)態(tài)寬度;2、錯(cuò)誤頁(yè)提示,頁(yè)面中間一個(gè)提示框的布局方案;3、純白頁(yè)面布局。
具體開發(fā)的頁(yè)面中,如果使用默認(rèn)布局,則不需指定頁(yè)面的布局,nuxt框架會(huì)自動(dòng)對(duì)沒(méi)有指定布局的頁(yè)面和default布局進(jìn)行關(guān)聯(lián)。如果需要指定布局,則在layout字段中對(duì)布局進(jìn)行指定。如圖在login頁(yè)面中對(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ù)端渲染頁(yè)面緩存和組件緩存的實(shí)例詳解
- vue服務(wù)端渲染操作簡(jiǎn)單入門實(shí)例分析
相關(guān)文章
vue項(xiàng)目動(dòng)態(tài)設(shè)置頁(yè)面title及是否緩存頁(yè)面的問(wèn)題
這篇文章主要介紹了vue項(xiàng)目動(dòng)態(tài)設(shè)置頁(yè)面title及是否緩存頁(yè)面的問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
基于Vue實(shí)現(xiàn)圖片在指定區(qū)域內(nèi)移動(dòng)的思路詳解
這篇文章主要介紹了基于Vue實(shí)現(xiàn)圖片在指定區(qū)域內(nèi)移動(dòng),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
VUE div click無(wú)效的問(wèn)題及解決
這篇文章主要介紹了VUE div click無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法代碼實(shí)例
有時(shí)候在項(xiàng)目中我們經(jīng)常需要設(shè)置簡(jiǎn)單的倒計(jì)時(shí)功能,這個(gè)可以通過(guò)定時(shí)器來(lái)實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法的相關(guān)資料,需要的朋友可以參考下2023-04-04
Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2023-11-11
ant-design-vue動(dòng)態(tài)表格合并案例
這篇文章主要介紹了ant-design-vue動(dòng)態(tài)表格合并案例,文章圍繞主題通過(guò)案例詳解展開相關(guān)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08

