Nuxt 開發(fā)經(jīng)驗分享

Nuxt 開發(fā)經(jīng)驗分享

Nuxt 介紹

簡單來說隘谣,Nuxt.js 是一個基于Vue的通用應(yīng)用框架淋纲,采用SSR(Server Side Rendering 服務(wù)端渲染);目的是為了解決單頁面應(yīng)用的 SEO 問題;vue單頁面應(yīng)用渲染是從服務(wù)器獲取所需js掘鄙,在客戶端將其解析生成HTML掛載于id為app的DOM元素上耘戚,這樣會存在兩個大問題:

1.由于頁面內(nèi)容是通過js插入,對于內(nèi)容性網(wǎng)站來說操漠,搜索引擎無法抓取網(wǎng)站內(nèi)容收津,也就是用戶搜不到此網(wǎng)站的相關(guān)信息,不利于SEO浊伙;
2.資源請求量大撞秋,造成網(wǎng)站首屏加載緩慢,不利于用戶體驗

而我們公司做的網(wǎng)站剛好是內(nèi)容性質(zhì)的網(wǎng)站 愛德媒BlockADM~~~

Nuxt 安裝

Nuxt.js 團隊創(chuàng)建了腳手架工具 create-nuxt-app

 $ npx create-nuxt-app <項目名>  

前提是已經(jīng)安裝了vue腳手架搭建項目的環(huán)境嚣鄙,比如npm吻贿; npx在NPM版本5.2.0就已經(jīng)默認(rèn)安裝了;在安裝的過程中哑子,它會讓你進行一些選擇舅列,在集成的服務(wù)端框架之間進行選擇,我的項目是選擇None(Nuxt默認(rèn)服務(wù)器)卧蜓;選擇喜歡的ui框架 根據(jù)實際項目選擇帐要;之后的我基本都是選擇默認(rèn)的了;安裝完成之后 進入項目 npm run dev 啟動項目

   $ cd <project-name>

   $ npm run dev

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

[圖片上傳失敗...(image-7711c-1565578464914)]

實戰(zhàn)經(jīng)驗

路由

nuxt按照 pages 文件夾的目錄結(jié)構(gòu)自動生成路由(vue需在 src/router/index.js 手動配置路由)

`

  pages/
  --| user/
 -----| index.vue
 -----| one.vue
  --| index.vue

`

Nuxt.js 生成對應(yīng)的路由配置表為:

`

   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'
     }
   ]
  }
`

引入本地css文件以及js插件

 `
 export default {
   mode: 'universal',
   head: {
    title: '愛德媒BlockADM-價值共享網(wǎng)絡(luò)' || '',
     meta: [
      { charset: 'utf-8' },
       ],
     link: [
      { rel: 'icon', type: 'image/x-icon', href: '/logo_icon.png' }
     ]

    loading: { color: '#fff' },
  /* ** 全局樣式引入 */
    css: [
      'element-ui/lib/theme-chalk/index.css',
      '~static/css/common.css',
     ],
  /*** 全局js */
    plugins: [

     { src: '~/plugins/main_client.js', mode: 'client' },
     { src: '~/plugins/main.js', mode: 'server' },
     '~/plugins/axios'
    ],
   }

 `

項目的全局css是放在static/css/common.css中 弥奸,項目中用的js全局js榨惠,分為兩個文件, 一個是在服務(wù)端渲染的,一個是在客戶端渲染的冒冬,mode分別都不一樣伸蚯,這里是我踩過的坑 ,不過前端大部分的js都是在客戶端简烤;第二點 axios.js是自己封裝了原本axios的文件,可以把它當(dāng)作全局的js文件摇幻,所以把它擋在plugins中横侦,然后再配置文件中引入

請求

Nuxt.js擴展了Vue.js,增加了一個叫 asycData 的方法,使得我們可以再設(shè)置組件的數(shù)據(jù)之前能異步獲取或者處理數(shù)據(jù)绰姻,使用方法:

 ** 單個請求**

  ` 

   async asyncData (context) {
    let {data} = await context.$axios.get(`news/app/visitor/newsFlash/get`,{params: {id:context.query.id}});
    return {
      content:data.data.content,
      newsFlashTime:data.data.createTime,
      newsFlashTitle:data.data.title,
    }
  },
 
 `

其中content枉侧,newsFlashTime等 是自己定義的data中的數(shù)據(jù)

**并發(fā)請求**

 `
  async asyncData (context) {
    console.log(context);
    let [data,dataTwo,dataThree] = await Promise.all([
      context.$axios.get("user/app/visitor/getMemberInfoByUserId",{params: {userId:context.query.id}}),
      context.$axios.post("news/web/visitor/newsArticle/page",{
        pageNum: 1,
        pageSize: 3,
        sortType: 2
      }),
      context.$axios.post("news/web/visitor/newsArticle/page",{
        pageNum: 1,
        pageSize: 6,
        memberId: context.query.id
      })
    ]);

    return {
      personDate:data.data.data,
      allViewDate:dataTwo.data.data.records,
      articleDate:dataThree.data.data.records
    }
  },
       
 `

重點:context 來了解該對象的所有屬性和方法。

先整理到這里吧 目前所遇到的問題是這些~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狂芋,一起剝皮案震驚了整個濱河市榨馁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帜矾,老刑警劉巖翼虫,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異屡萤,居然都是意外死亡珍剑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門死陆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來招拙,“玉大人,你說我怎么就攤上這事措译”鸱铮” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵领虹,是天一觀的道長规哪。 經(jīng)常有香客問我,道長掠械,這世上最難降的妖魔是什么由缆? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮猾蒂,結(jié)果婚禮上均唉,老公的妹妹穿的比我還像新娘。我一直安慰自己肚菠,他們只是感情好舔箭,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般层扶。 火紅的嫁衣襯著肌膚如雪箫章。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天镜会,我揣著相機與錄音檬寂,去河邊找鬼。 笑死戳表,一個胖子當(dāng)著我的面吹牛桶至,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匾旭,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼镣屹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了价涝?” 一聲冷哼從身側(cè)響起女蜈,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎色瘩,沒想到半個月后伪窖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡泞遗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年惰许,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片史辙。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡汹买,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出聊倔,到底是詐尸還是另有隱情晦毙,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布耙蔑,位于F島的核電站见妒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甸陌。R本人自食惡果不足惜须揣,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望钱豁。 院中可真熱鬧耻卡,春花似錦、人聲如沸牲尺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溃卡,卻和暖如春溢豆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瘸羡。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工漩仙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人犹赖。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓讯赏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冷尉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355