1. 程式人生 > >整理vue專案的筆記

整理vue專案的筆記

1、Vue.component()建立元件。註冊全域性元件,也就是說在他們註冊完後可以在任何vue例項中使用。

for example:

import pContainer form './common/PContainer.vue' 

Vue.component('pContainer',pContainer)   // 第一個pConainer是定義的元件名字。第二個PContainer是import進來的元件

export {

pContainer //輸出

}

在某個vue例項中使用:

<template>

   <div>

    <p-container></p-container>

   </div>

</template>

上面使用export,那麼和export defalut有什麼區別呢?

export和export defalut是用於匯出常量,函式,檔案和模組等。你可以在其他檔案或者模組中 import 函式,常量,檔案和模組等。在一個檔案或者模組裡,export可以有多個,但是export defalut只有一個。它們的使用形式不同:export {} 匯出需要帶上{},而export defalut則不需要。

2、vue自定義函式倒掛在全域性方法

方法一:使用Vue.prototype.getToken = function(){.....}

在所有元件中可使用:this.getToken()

方法二:export defalut{  //index.js

   install(Vue){

    Vue.prototype.getToken() = function(){........}

  }

}

在main.js中 import index,.js  並且Vue.use()

3、Vue.use()

需要使用Vue.use()的元件也就是需要install的元件,install是預設的方法,當外界use這個元件時,就會呼叫install方法

4、請求時是否需要帶上token

先是可以定義一個獲取token的函式  for example:

let api = null

let token = ()=>{

  return token

}

let api0 = {

  GET:function(key){

   let val = api[key]

   if(key !== 'LOGIN'){  //如果是登陸,則不帶上token

     val = val + '?token' + token()

   }

   return val

  }

}

export defalut {

  insatll(Vue,{getToken}){

    if(typeof getToken === 'function'){

      token = getToken

    }

    Vue.prototye.$api = api0

 }

}

// 以上程式碼簡短,只寫部分。

5、預設的請求的基本路徑:axios.defalut.baseURL,注意是baseURL!!!

6、路由攔截

meta:{

   requireAuth: true  //表示進入該路由是需要登陸的,如果使用者已經登陸,則順利進入該路由,否則就進入登陸頁面。

}

定義完路由後,根據vue-router的鉤子函式beforeEach()進行路由判斷

攔截器的使用:axios.interceptors.request.use()  axios.interceptors.response.use()

Promise.reject(err) 丟擲錯誤