全局定义

语法:Vue.directive('指令名',{
inserted (el) {
指令执行代码
}
})

  • 全局在main.js内注册
  • el参数是使用指令的元素DOM对象
  • 定义指令名不要带v-,使用指令的时候带上v-指令名
    1. Vue.directive('color', {
    2. inserted (el) {
    3. console.log(el)
    4. el.style.color = 'rgb(255,0,0)'
    5. }
    6. })
    ```vue

  1. <a name="FmjwC"></a>
  2. ## 局部定义
  3. `directives:{`<br />`指令名:{`<br />`inserted (el,bind) {`<br />`指令执行代码`<br />`}`<br />`}`<br />`}`
  4. - 局部注册,directive跟data同级
  5. - el参数是使用指令的元素DOM对象
  6. - bind参数 可以获取指令绑定data变量的值
  7. - 定义指令名不要带`v-`,使用指令的时候带上`v-指令名`
  8. - `v-指令名="data变量"`可以绑定data变量
  9. ```vue
  10. <template>
  11. <div>
  12. <!-- <h1 v-color>自定义指令</h1> -->
  13. <h2 v-border="color">局部定义</h2>
  14. </div>
  15. </template>
  16. <script>
  17. export default {
  18. data () {
  19. return {
  20. color: 'red'
  21. }
  22. },
  23. directives: {
  24. border: {
  25. // 元素挂在(只会执行一次)
  26. inserted (el, bind) {
  27. console.log(el, bind)
  28. el.style.border = `5px solid ${bind.value}`
  29. },
  30. // 绑定的data变量变化了会执行(多次)
  31. update (el, bind) {
  32. el.style.border = `5px solid ${bind.value}`
  33. }
  34. }
  35. }
  36. }
  37. </script>
  38. <style scoped>
  39. </style>

原型链方法

语法:Vue.prototype.属性 = 值

  • 挂载到vue构造函数prototype上
  • 所有的vue文件都是vue函数的实例都可以使用
  • 可以通过this.调用
    1. import axios from 'axios'
    2. import Vue from 'vue'
    3. axios.defaults.baseURL = "https://applet-base-api-t.itheima.net"
    4. Vue.prototype.request = axios