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) 抛出错误