原文地址前端
曾今據說過 SSR
作搜索引擎優化( SEO
),那時候的我只知道有這個東西並不瞭解。如今由於工做須要入門學習了 Nuxt
,剛剛開始我還覺得很難,學完以後發現他比我 想象中的簡單多了。粗略看一遍文檔,敲一遍文檔的案例,在再網上找了一個小小的項目練練手。好像就已經學的差很少了,希望等工做須要的時候我能夠快速上手,用着毫無壓力吧。vue
在學習過程當中參考的資料有:文檔 Nuxt.js
和 合格前端系列第十一彈-初探 Nuxt.js 祕密花園裏面的 Demo
小項目。閱讀文檔不仔細,鬧過一次笑話。git
Nuxt
目錄結構建立一個 nuxt
很簡單,我假設你已經不是剛剛入門前端的小夥伴了github
$ npx create-nuxt-app <項目名>
複製代碼
建立好項目之後,會獲得入流程圖所示的項目結構api
初始化獲得的這個項目目錄結構基本不須要咱們在作什麼改變,咱們只要在對應的目錄底下作編寫對應的代碼就行了。 nuxt
搭建的項目和用 vue cli
搭建的項目有些不同的事,不須要咱們手動去設置路由。全部的路由都是 nuxt
幫咱們設置好的。 優勢就是,不再用擔憂我絞破腦汁想路由名字了;下面會詳細介紹,沒有介紹到的目錄或者文件,都在流程圖裏面詳細介紹了,大部分的配置和 vue cli
配置大同小異 。bash
關於頁面要如何進行佈局,咱們一般把它放在 layouts
目錄底下 default.vue
文件裏面(默認佈局) 例如 default.vue
代碼如圖所示app
<template>
<div>
<v-header></v-header>
<main ref="container" class="content-container">
<nuxt />
</main>
</div>
</template>
複製代碼
那麼全部頁面都將引入一個 v-header
組件,全部 pages
目錄底下頁面代碼都將放入到 main
標籤裏面(前提是你沒有使用自定義佈局) 關於自定義佈局請轉接到文檔async
Nuxt.js
爲頁面提供的特殊配置項,咱們在頁面中能夠直接這些方法和屬性ide
在 asyncData
方法裏面第一個參數就是當前頁面組件的上下文的對象佈局
由於其餘方法裏面也有上下文這個東西詳細介紹一下,關於其餘方法和屬性詳細信息請參考 api
假設 pages
的目錄結構以下:
pages/
--| user/
-----| index.vue
-----| one.vue
--| index.vue
複製代碼
那麼,Nuxt.js
自動生成的路由配置以下:
router: {
routes: [
{
name: 'index',
path: '/',
component: 'pages/index.vue'
},
{
name: 'user',
path: '/user',
component: 'pages/user/index.vue'
},
{
name: 'user-one',
path: '/user/one',
component: 'pages/user/one.vue'
}
]
}
複製代碼
帶參數的動態路由,須要建立對應的如下劃線做爲前綴的 Vue
文件 或 目錄。
假設 pages
的目錄結構以下:
pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| users/
-----| _id.vue
--| index.vue
複製代碼
Nuxt.js
生成對應的路由配置表爲:
router: {
routes: [
{
name: 'index',
path: '/',
component: 'pages/index.vue'
},
{
name: 'users-id',
path: '/users/:id?',
component: 'pages/users/_id.vue'
},
{
name: 'slug',
path: '/:slug',
component: 'pages/_slug/index.vue'
},
{
name: 'slug-comments',
path: '/:slug/comments',
component: 'pages/_slug/comments.vue'
}
]
}
複製代碼
你會發現名稱爲 users-id
的路由路徑帶有 :id?
參數,表示該路由是可選的。若是你想將它設置爲必選的路由,須要在 users/_id
目錄內建立一個 index.vue
文件。
更多路由信息請參考參考文檔
Nuxt api
最重要的是咱們要了解他的生命週期,這樣才能夠更好的使用他
DEMO
真槍實彈作一次,體會更加深入,不能紙上談兵。 負責搬磚個人,搬了一個仿掘金的 Demo
項目,項目徹底參考合格前端系列第十一彈-初探 Nuxt.js 祕密花園