全局注册:
// 注册 全局指令 v-name
Vue.directive("name", {
// 当被绑定这个指令的元素插入到dom中时,执行inserted钩子函数
inserted: function(el) {
// 逻辑处理
}
})
局部注册:
// 注册 局部指令 v-name
export default {
name: "ComponentName",
directives: {
name: {
// 当被绑定这个指令的元素插入到 本组件 的dom中时,执行inserted钩子函数
inserted: function(el) {
// 逻辑处理
}
}
}
}
如果希望在 bind 和 update 时触发相同的行为,则可以这样定义指令:
Vue.directive("name", function (el, binding) {
// 逻辑处理
})
具体方式:
<!-- 使用指令的组件 -->
<Test
v-directionsTest
:data-test="testValue"
></Test>
export default {
data: {
return {
testValue: "test"
}
}
}
// 指令定义
Vue.directions("directionsTest", {
// 指令第一次绑定到dom元素时调用
bind: function(el) {
// 修改组件中的 testValue 的值
el.dataset.test = "update test"
}
})
原文:https://www.cnblogs.com/upward-lalala/p/14774262.html