私有定义指令

1.directives节点

2.在定义时不需要使用v-前缀

3.函数中的el指向绑定的元素 触发的函数必须是bind

 directives:{
        color:{
            bind(el){
                el.style.color="red"
            }
        }
    }

还可传值

  <p v-color="‘blue‘">jjjj</p> //传进去一个字符串颜色
<p v-color="color">jjj</p> //传进去一个data属性里面的值
    
//使用
data(){
    return {color:‘blue‘}
},
  directives:{
        color:{
            bind(el,binding){
                el.style.color=binding.value
            }
        }
    },

 

4.bind与update函数

bind与update都是自定义指令里的函数,其中bind函数只调用一次,在数据更新后不会再被触发。

而update函数会在每次DOM更新后被调用。

eg:没点击按钮前,v-color绑定在p上,网页加载完触发一次bind函数,当点击按钮后,改变color的值,更新了dom,调用update

<button @click="color=‘blue‘">点击改变颜色</button>
      <p v-color="color">jjjj</p>

 


directives:{ color:{ bind(el,binding){ el.style.color=binding.value console.log("调用了bind"); }, update(el,binding){ el.style.color=binding.value console.log("调用了update"); } } },

5.简写:在bind与update函数中内容一样的时候 可以简写这种形式。

directives:{
        color(el,binding){}
}

 

6.全局指令。

Vue.directive("指令名",function(el,binding){})


私有定义指令

上一篇:switch语句逆向


下一篇:小行星碰撞(使用deque操作)