网站建设问卷,天猫代运营,平面设计培训线上,就业网站建设总结概念 除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外#xff0c;Vue 还允许你注册自定义的指令 (Custom Directives)。自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。 指令钩子 一个指令的定义对象可以提供几种钩子函数 (都是可选的)#xff1a;示… 概念 除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外Vue 还允许你注册自定义的指令 (Custom Directives)。自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。 指令钩子 一个指令的定义对象可以提供几种钩子函数 (都是可选的)示例 const myDirective {// 在绑定元素的 attribute 前// 或事件监听器应用前调用created(el, binding, vnode, prevVnode) {// 下面会介绍各个参数的细节},// 在元素被插入到 DOM 前调用beforeMount(el, binding, vnode, prevVnode) {},// 在绑定元素的父组件// 及他自己的所有子节点都挂载完成后调用mounted(el, binding, vnode, prevVnode) {},// 绑定元素的父组件更新前调用beforeUpdate(el, binding, vnode, prevVnode) {},// 在绑定元素的父组件// 及他自己的所有子节点都更新后调用updated(el, binding, vnode, prevVnode) {},// 绑定元素的父组件卸载前调用beforeUnmount(el, binding, vnode, prevVnode) {},// 绑定元素的父组件卸载后调用unmounted(el, binding, vnode, prevVnode) {}
} 钩子参数 指令的钩子会传递以下几种参数 el指令绑定到的元素。这可以用于直接操作 DOM。 binding一个对象包含以下属性。 value传递给指令的值。例如在 v-my-directive1 1 中值是 2。 oldValue之前的值仅在 beforeUpdate 和 updated 中可用。无论值是否更改它都可用。 arg传递给指令的参数 (如果有的话)。例如在 v-my-directive:foo 中参数是 foo。 modifiers一个包含修饰符的对象 (如果有的话)。例如在 v-my-directive.foo.bar 中修饰符对象是 { foo: true, bar: true }。 instance使用该指令的组件实例。 dir指令的定义对象。 vnode代表绑定元素的底层 VNode。 prevNode代表之前的渲染中指令所绑定元素的 VNode。仅在 beforeUpdate 和 updated 钩子中可用。 举例来说像下面这样使用指令 div v-example:foo.barbaz binding 参数会是一个这样的对象 {arg: foo,modifiers: { bar: true },value: /* baz 的值 */,oldValue: /* 上一次更新时 baz 的值 */
} 示例 script setup
import {ref} from vue
let example ref({color:red,
})
// 在模板中启用 v-example
const vExample {mounted:(el,binding){// console.log(binding)el.style.color binding.value.color}
}
/scripttemplatespan v-example:argsexamplespan/span
/template