最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue基于NUXT的SSR詳解

 更新時(shí)間:2017年10月24日 10:42:02   作者:orangexc  
這篇文章主要介紹了Vue基于NUXT的SSR詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文介紹了Vue基于NUXT的SSR,分享給大家,也給自己留個(gè)筆記。

SSR

首先說下 SSR,最近很熱的詞,意為 Server Side Rendering(服務(wù)端渲染),目的是為了解決單頁面應(yīng)用的 SEO 的問題,對(duì)于一般網(wǎng)站影響不大,但是對(duì)于論壇類,內(nèi)容類網(wǎng)站來說是致命的,搜索引擎無法抓取頁面相關(guān)內(nèi)容,也就是用戶搜不到此網(wǎng)站的相關(guān)信息。

抓取頁面的前提是 html 含有被抓取內(nèi)容,我們不妨看看基于 vue 的線上 SPA 頁面請(qǐng)求時(shí)返回了什么

<!DOCTYPE html>
<html>
 <head>
  <meta charset=utf-8>
  <title>iDareX敢玩</title>
  <meta name=keywords content="敢玩, iDareX, 敢玩TV, 敢玩活動(dòng), 敢玩自頻道, 敢玩主題, 戶外, 極限運(yùn)動(dòng), 周邊游, 探險(xiǎn), 時(shí)尚, 新潮, 運(yùn)動(dòng)視頻, 體育, 新奇, 生活方式, 刺激, 驚險(xiǎn), 戶外裝備, 達(dá)人, 90后">
  <meta name=description content=自2014年10月創(chuàng)辦以來,敢玩專注于極限戶外和娛樂體育。從頑童、玩具、玩法三個(gè)方面,產(chǎn)出更專注于‘玩'的內(nèi)容,已打造了一系列深受喜愛的娛樂體育真人秀和引爆網(wǎng)絡(luò)的運(yùn)動(dòng)視頻。!>
  <meta name=renderer content=webkit>
  <meta name=force-rendering content=webkit>
  <meta name=viewport content="width=1140">
  <meta http-equiv=X-UA-Compatible content="IE=edge,chrome=1">
  <link rel="shortcut icon" href=static/favicon.ico type=image/x-icon>
  <link href=/static/css/app.eef5b81a3d1bee5054a791f452a34147.css rel=stylesheet>
 </head>
 <body>
  <div id=app></div>
  <script type=text/javascript src=/static/js/manifest.6d0adb8f2d8884be1c03.js></script>
  <script type=text/javascript src=/static/js/vendor.ec1cc90c9847c434ba7d.js></script>
  <script type=text/javascript src=/static/js/app.d7fd10ae7e4a68598037.js></script>
 </body>
</html>

我們的組件都是這個(gè) html 文件返回后再渲染到 <div id=app></div> 里的。這就合理的解釋了 SEO 缺陷的原因。

既然說到 SSR 可以解決 SEO 的問題,不難想到原理就是將我們的 html 在服務(wù)端渲染,合成完整的 html 文件再輸出到瀏覽器。

另外 SSR 還適用以下場(chǎng)景

  1. 客戶端的網(wǎng)絡(luò)比較慢
  2. 客戶端運(yùn)行在老的或者直接沒有 JavaScript 引擎上

vue 官網(wǎng)給出了 SSR 原理圖片

對(duì)于這幅圖的原理官網(wǎng)有詳細(xì)解釋,此類文章也很多,這里不贅述。

NUXT

我們進(jìn)入正題說下 NUXT

Nuxt.js is a minimalistic framework for server-rendered Vue applications (inspired by Next.js)

作用就是在 node.js 上進(jìn)一步封裝,然后省去我們搭建服務(wù)端環(huán)境的步驟,只需要遵循這個(gè)庫的一些規(guī)則就能輕松實(shí)現(xiàn) SSR

安裝流程

Nuxt.js 團(tuán)隊(duì)提供了 vue-cli 的初始化模板。前提安裝 vue-cli,安裝過的忽略此步

npm install -g vue-cli

完成后在需要?jiǎng)?chuàng)建的目錄下執(zhí)行以下

vue init nuxt/starter <project-name>
cd <project-name>
npm install

依賴安裝完成后

npm run dev

打開瀏覽器 http://localhost:3000

說明:Nuxt.js 會(huì)監(jiān)聽 pages 目錄下的改變,添加新 page 的時(shí)候不需要重啟服務(wù)

目錄結(jié)構(gòu)

完成上面命令后你的目錄結(jié)構(gòu)會(huì)如下

Nuxt.js 給出了最簡(jiǎn)單的目錄結(jié)構(gòu)

|-- pages
  |-- index.vue
|-- package.json

也就是說,至少需要一個(gè) page 來作為展示頁。

文件的路徑建議都采用絕對(duì)路徑,表格如下

例:怎么在 /pages/user/me.vue 引入一個(gè) static 文件夾里的圖片

<img src="~static/img/logo.png" alt="Logo"/>

路由

Nuxt.js 根據(jù) pages 目錄結(jié)構(gòu)去生成 vue-router 配置,也就是說 pages 目錄的結(jié)構(gòu)直接影響路由結(jié)構(gòu)

例1:

|-- pages
  |-- posts
    |-- index.vue
    |-- welcome.vue
  |-- about.vue
  |-- index.vue

會(huì)生成

routes: [
 {
  path: '/posts',
  component: '~pages/posts/index.vue'
 }, {
  path: '/posts/welcome',
  component: '~pages/posts/welcome.vue'
 }, {
  path: '/about',
  component: '~pages/about.vue'
 }, {
  path: '/',
  component: '~pages/index.vue'
 }
]

例2:隱藏路由

在文件名前加 _

|-- pages
  |-- _about.vue
  |-- index.vue

會(huì)生成

routes: [
 {
  path: '/',
  component: '~pages/index.vue'
 }
]

配置文件

目錄下的 nuxt.config.js 是我們唯一的配置入口,這里不建議修改 .nuxt 目錄,除非特殊需求

默認(rèn)的給力我們?nèi)齻€(gè)配置 ·head·css·loading· 分別是頭部設(shè)置,全局css,loading進(jìn)度條

nuxt.config.js 的全部的配置如下,點(diǎn)擊查看具體例子

  1. cache
  2. loading
  3. router
  4. css
  5. plugins
  6. head

另外還提供了 vuex 等配置,感興趣可以去 github 和官網(wǎng)。

NUXT 能為我們做什么

對(duì)于使用就說上面這么多(官網(wǎng)上都有,這里給大家一個(gè)概覽),說下為什么選擇 NUXT 來做 SSR

問題1:就是我們無需為了路由劃分而煩惱,你只需要按照對(duì)應(yīng)的文件夾層級(jí)創(chuàng)建 .vue 文件就行
問題2:無需考慮數(shù)據(jù)傳輸問題,nuxt 會(huì)在模板輸出之前異步請(qǐng)求數(shù)據(jù)(需要引入 axios 庫),而且對(duì) vuex 有進(jìn)一步的封裝
問題3:內(nèi)置了 webpack,省去了配置 webpack 的步驟,nuxt 會(huì)根據(jù)配置打包對(duì)應(yīng)的文件

還有很多便捷之處,可以嘗試去寫一寫,讀讀源碼

總結(jié)

  1. 本篇主要介紹 nuxt 的便捷之處,在使用上目前不推薦使用,幾個(gè)原因:
  2. 文檔不完善還有許多是空的,不是說我們什么信息都得不到,可以看文檔的 examples,里面列舉的比較全面。

目前是 0.8.0 版本,而且 README 里介紹 1.0 即將到來,可能會(huì)添加新功能,文檔也會(huì)完善,待到版本穩(wěn)定后再部署也不遲。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue.prototype詳解及使用方式

    Vue.prototype詳解及使用方式

    這篇文章主要介紹了Vue.prototype詳解及使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue3中v-if和v-for優(yōu)先級(jí)實(shí)例詳解

    Vue3中v-if和v-for優(yōu)先級(jí)實(shí)例詳解

    Vue.js中使用最多的兩個(gè)指令就是v-if和v-for,下面這篇文章主要給大家介紹了關(guān)于Vue3中v-if和v-for優(yōu)先級(jí)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue 如何開啟或關(guān)閉熱更新

    vue 如何開啟或關(guān)閉熱更新

    這篇文章主要介紹了vue 如何開啟或關(guān)閉熱更新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue+element實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼注冊(cè)的示例

    vue+element實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼注冊(cè)的示例

    本文主要介紹了vue+element實(shí)現(xiàn)手機(jī)號(hào)驗(yàn)證碼注冊(cè)的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問題和解決辦法

    Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問題和解決辦法

    封裝一個(gè)組件時(shí),我使用到了v-for和v-if,它們?cè)谕粯?biāo)簽內(nèi),總是提示v-for循環(huán)出來的item在實(shí)例中沒有被定義,查詢資料后原因是因?yàn)関-for和v-if在同級(jí)使用時(shí),v-if優(yōu)先級(jí)比v-for高,所以本文給大家介紹了Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問題和解決辦法
    2024-07-07
  • vue中響應(yīng)式布局如何將字體大小改成自適應(yīng)

    vue中響應(yīng)式布局如何將字體大小改成自適應(yīng)

    這篇文章主要介紹了vue中響應(yīng)式布局如何將字體大小改成自適應(yīng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue keep-alive多層級(jí)路由支持問題分析

    vue keep-alive多層級(jí)路由支持問題分析

    這篇文章主要介紹了vue keep-alive多層級(jí)路由支持,在文章開頭給大家介紹了keep-alive使用問題,解決使用keep-alive include屬性問題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • window.onresize在vue中只能使用一次,自適應(yīng)resize報(bào)錯(cuò)問題

    window.onresize在vue中只能使用一次,自適應(yīng)resize報(bào)錯(cuò)問題

    這篇文章主要介紹了window.onresize在vue中只能使用一次,自適應(yīng)resize報(bào)錯(cuò)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 解決vue 綁定對(duì)象內(nèi)點(diǎn)擊事件失效問題

    解決vue 綁定對(duì)象內(nèi)點(diǎn)擊事件失效問題

    今天小編就為大家分享一篇解決vue 綁定對(duì)象內(nèi)點(diǎn)擊事件失效問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue中進(jìn)行數(shù)據(jù)緩存的使用示例

    Vue中進(jìn)行數(shù)據(jù)緩存的使用示例

    數(shù)據(jù)緩存可以提高應(yīng)用程序的性能,減少網(wǎng)絡(luò)請(qǐng)求,提高用戶體驗(yàn),在本文中,我們介紹了Vue中如何進(jìn)行數(shù)據(jù)緩存,并提供了一些示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論

凤凰县| 阿巴嘎旗| 石门县| 伊春市| 九台市| 庆云县| 泗阳县| 乌海市| 杭锦旗| 龙游县| 琼中| 石泉县| 麻江县| 蓬溪县| 永兴县| 固阳县| 荔波县| 象山县| 尉犁县| 阿坝县| 洮南市| 安顺市| 西丰县| 壤塘县| 东辽县| 凌云县| 汽车| 沾化县| 拜城县| 石棉县| 抚顺市| 紫金县| 花莲县| 鄂尔多斯市| 武义县| 梁平县| 汾阳市| 临朐县| 图木舒克市| 兴国县| 行唐县|