詳解Nuxt.jsVue服務(wù)端渲染摸索

本文采用nuxt進(jìn)行服務(wù)端渲染https://zh.nuxtjs.org/

創(chuàng)新互聯(lián)專(zhuān)注于宜都網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供宜都營(yíng)銷(xiāo)型網(wǎng)站建設(shè),宜都網(wǎng)站制作、宜都網(wǎng)頁(yè)設(shè)計(jì)、宜都網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造宜都網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供宜都網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

Nuxt.js 十分簡(jiǎn)單易用。一個(gè)簡(jiǎn)單的項(xiàng)目只需將 nuxt 添加為依賴(lài)組件即可。

Vue因其簡(jiǎn)單易懂的API、高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng),受到很多前端開(kāi)發(fā)人員的青睞。國(guó)內(nèi)很多公司都在使用vue進(jìn)行項(xiàng)目開(kāi)發(fā),我們正在使用的簡(jiǎn)書(shū),便是基于Vue來(lái)構(gòu)建的。

我們知道,SPA前端渲染存在兩大痛點(diǎn):(1)SEO。搜索引擎爬蟲(chóng)難以抓取客戶(hù)端渲染的頁(yè)面meta信息和其他SEO相關(guān)信息,使網(wǎng)站無(wú)法在搜索引擎中被用戶(hù)搜索到。(2)用戶(hù)體驗(yàn)。大型webApp打包之后的js會(huì)很龐大,于是就有了按模塊加載,像require.js一樣,異步請(qǐng)求。webpack盛行,就變成了代碼分割。即便如此,受制于用戶(hù)設(shè)備,頁(yè)面初次渲染還是有可能很慢,白屏等待時(shí)間太長(zhǎng),對(duì)日益挑剔的用戶(hù)群體來(lái)說(shuō),無(wú)法接受。

因此,對(duì)于那些展示宣傳型頁(yè)面,如官網(wǎng),必須進(jìn)行服務(wù)端渲染(SSR)。安裝 nuxt.js

$ vue init nuxt-community/starter-template <你項(xiàng)目的名字>
// 后面 安裝依賴(lài)你懂的
// 安裝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è)面布局。

具體開(kāi)發(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í)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前文章:詳解Nuxt.jsVue服務(wù)端渲染摸索
標(biāo)題URL:http://bm7419.com/article34/iidppe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、軟件開(kāi)發(fā)品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站建設(shè)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)