第一个参数是定义指令的名字,第二个参数是一个对象。
这个对象身上,有一些指令相关的函数,这些函数可以在特定的阶段,执行相关的操作
Vue.directive('focus', {
// 只调用一次,指令第一次绑定到元素时调用。
bind: function (el) {
// 和JS样式有关的操作,最好在 bind中去执行
// 当元素显示到页面的时候,浏览器渲染引擎会解析样式,应用到元素上
},
//元素插入到DOM中的时候
inserted: function (el) {
// 和JS行为有关的操作,最好在 inserted 中去执行,放置 JS行为不生效
},
//组件更新
update: function (el) {
console.log(el, 3);
}
});
注意: 在每个函数中,第一个参数,永远是 el ,表示被绑定了指令的那个元素,这个 el 参数,是一个原生的JS对象
如果被绑定指令的时候需要传参,则通过第二个参数获取参数
<input type="text" v-model="name" v-color="'pink'">
Vue.directive('color', {
bind: function (el,binding) {
el.style.color = binding.value;
},
});
指令简写
Vue.directive('color', function (el, binding) {
el.style.color = binding.value;
});