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

Vue基于NUXT的SSR詳解

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

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

SSR

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

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

<!DOCTYPE html>
<html>
 <head>
  <meta charset=utf-8>
  <title>iDareX敢玩</title>
  <meta name=keywords content="敢玩, iDareX, 敢玩TV, 敢玩活動(dòng), 敢玩自頻道, 敢玩主題, 戶(hù)外, 極限運(yùn)動(dòng), 周邊游, 探險(xiǎn), 時(shí)尚, 新潮, 運(yùn)動(dòng)視頻, 體育, 新奇, 生活方式, 刺激, 驚險(xiǎn), 戶(hù)外裝備, 達(dá)人, 90后">
  <meta name=description content=自2014年10月創(chuàng)辦以來(lái),敢玩專(zhuān)注于極限戶(hù)外和娛樂(lè)體育。從頑童、玩具、玩法三個(gè)方面,產(chǎn)出更專(zhuān)注于‘玩'的內(nèi)容,已打造了一系列深受喜愛(ài)的娛樂(lè)體育真人秀和引爆網(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 缺陷的原因。

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

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

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

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

對(duì)于這幅圖的原理官網(wǎng)有詳細(xì)解釋?zhuān)祟?lèi)文章也很多,這里不贅述。

NUXT

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

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

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

安裝流程

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

npm install -g vue-cli

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

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

依賴(lài)安裝完成后

npm run dev

打開(kāi)瀏覽器 http://localhost:3000

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

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

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

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

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

也就是說(shuō),至少需要一個(gè) page 來(lái)作為展示頁(yè)。

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

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

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

路由

Nuxt.js 根據(jù) pages 目錄結(jié)構(gòu)去生成 vue-router 配置,也就是說(shuō) 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ì)于使用就說(shuō)上面這么多(官網(wǎng)上都有,這里給大家一個(gè)概覽),說(shuō)下為什么選擇 NUXT 來(lái)做 SSR

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

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

總結(jié)

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

目前是 0.8.0 版本,而且 README 里介紹 1.0 即將到來(lái),可能會(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)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue 如何開(kāi)啟或關(guān)閉熱更新

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

    這篇文章主要介紹了vue 如何開(kāi)啟或關(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è)的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue3中當(dāng)v-if和v-for同時(shí)使用時(shí)產(chǎn)生的問(wèn)題和解決辦法

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

    封裝一個(gè)組件時(shí),我使用到了v-for和v-if,它們?cè)谕粯?biāo)簽內(nèi),總是提示v-for循環(huán)出來(lái)的item在實(shí)例中沒(méi)有被定義,查詢(xún)資料后原因是因?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)生的問(wè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í)路由支持問(wèn)題分析

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

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

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

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

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

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

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

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

最新評(píng)論

新巴尔虎左旗| 洞口县| 玉山县| 揭东县| 旬阳县| 桃源县| 浠水县| 玉林市| 丰顺县| 聊城市| 澜沧| 贞丰县| 夏邑县| 菏泽市| 木里| 柳江县| 衢州市| 资阳市| 邯郸市| 昌图县| 靖西县| 曲周县| 阿拉善右旗| 固镇县| 清原| 桃源县| 西乡县| 彭州市| 玉龙| 祁门县| 莱芜市| 永修县| 进贤县| 顺义区| 民丰县| 南投县| 桑日县| 马山县| 佳木斯市| 霍山县| 河津市|