詳解Nuxt.js Vue服務(wù)端渲染摸索
本文采用nuxt進(jìn)行服務(wù)端渲染https://zh.nuxtjs.org/
Nuxt.js 十分簡單易用。一個(gè)簡單的項(xiàng)目只需將 nuxt 添加為依賴組件即可。
Vue因其簡單易懂的API、高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng),受到很多前端開發(fā)人員的青睞。國內(nèi)很多公司都在使用vue進(jìn)行項(xiàng)目開發(fā),我們正在使用的簡書,便是基于Vue來構(gòu)建的。
我們知道,SPA前端渲染存在兩大痛點(diǎn):(1)SEO。搜索引擎爬蟲難以抓取客戶端渲染的頁面meta信息和其他SEO相關(guān)信息,使網(wǎng)站無法在搜索引擎中被用戶搜索到。(2)用戶體驗(yàn)。大型webApp打包之后的js會(huì)很龐大,于是就有了按模塊加載,像require.js一樣,異步請求。webpack盛行,就變成了代碼分割。即便如此,受制于用戶設(shè)備,頁面初次渲染還是有可能很慢,白屏等待時(shí)間太長,對日益挑剔的用戶群體來說,無法接受。
因此,對于那些展示宣傳型頁面,如官網(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)對沒有指定布局的頁面和default布局進(jìn)行關(guān)聯(lián)。如果需要指定布局,則在layout字段中對布局進(jìn)行指定。如圖在login頁面中對full布局進(jìn)行了指定。
以上就是本文的全部內(nèi)容,希望對大家的學(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瀏覽器端渲染的性能對比(實(shí)例PK )
- vue服務(wù)端渲染的實(shí)例代碼
- Vue 2.0 服務(wù)端渲染入門介紹
- 詳解基于vue的服務(wù)端渲染框架NUXT
- vue服務(wù)端渲染添加緩存的方法
- vue服務(wù)端渲染頁面緩存和組件緩存的實(shí)例詳解
- vue服務(wù)端渲染操作簡單入門實(shí)例分析
相關(guān)文章
vue項(xiàng)目動(dòng)態(tài)設(shè)置頁面title及是否緩存頁面的問題
這篇文章主要介紹了vue項(xiàng)目動(dòng)態(tài)設(shè)置頁面title及是否緩存頁面的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11基于Vue實(shí)現(xiàn)圖片在指定區(qū)域內(nèi)移動(dòng)的思路詳解
這篇文章主要介紹了基于Vue實(shí)現(xiàn)圖片在指定區(qū)域內(nèi)移動(dòng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法代碼實(shí)例
有時(shí)候在項(xiàng)目中我們經(jīng)常需要設(shè)置簡單的倒計(jì)時(shí)功能,這個(gè)可以通過定時(shí)器來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法的相關(guān)資料,需要的朋友可以參考下2023-04-04Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Vue3實(shí)現(xiàn)粒子動(dòng)態(tài)背景,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2023-11-11ant-design-vue動(dòng)態(tài)表格合并案例
這篇文章主要介紹了ant-design-vue動(dòng)態(tài)表格合并案例,文章圍繞主題通過案例詳解展開相關(guān)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08