全局定义
语法:Vue.directive('指令名',{
inserted (el) {
指令执行代码
}
})
- 全局在
main.js
内注册 - el参数是使用指令的元素DOM对象
- 定义指令名不要带
v-
,使用指令的时候带上v-指令名
```vueVue.directive('color', {
inserted (el) {
console.log(el)
el.style.color = 'rgb(255,0,0)'
}
})
自定义指令
<a name="FmjwC"></a>
## 局部定义
`directives:{`<br />`指令名:{`<br />`inserted (el,bind) {`<br />`指令执行代码`<br />`}`<br />`}`<br />`}`
- 局部注册,directive跟data同级
- el参数是使用指令的元素DOM对象
- bind参数 可以获取指令绑定data变量的值
- 定义指令名不要带`v-`,使用指令的时候带上`v-指令名`
- `v-指令名="data变量"`可以绑定data变量
```vue
<template>
<div>
<!-- <h1 v-color>自定义指令</h1> -->
<h2 v-border="color">局部定义</h2>
</div>
</template>
<script>
export default {
data () {
return {
color: 'red'
}
},
directives: {
border: {
// 元素挂在(只会执行一次)
inserted (el, bind) {
console.log(el, bind)
el.style.border = `5px solid ${bind.value}`
},
// 绑定的data变量变化了会执行(多次)
update (el, bind) {
el.style.border = `5px solid ${bind.value}`
}
}
}
}
</script>
<style scoped>
</style>
原型链方法
语法:Vue.prototype.属性 = 值
- 挂载到vue构造函数prototype上
- 所有的vue文件都是vue函数的实例都可以使用
- 可以通过
this.
调用import axios from 'axios'
import Vue from 'vue'
axios.defaults.baseURL = "https://applet-base-api-t.itheima.net"
Vue.prototype.request = axios