// 自定义指令示例代码
// 1. 全局自定义指令
import { createApp } from 'vue';
const app = createApp({});
app.directive('focus', {
// 指令的定义
mounted(el) {
// 聚焦元素
el.focus();
}
});
// 2. 局部自定义指令
const app = createApp({
data() {
return {
message: 'Hello!'
}
},
directives: {
focus: {
// 指令的定义
mounted(el) {
// 聚焦元素
el.focus();
}
}
}
});
// 3. 更复杂的自定义指令,包含多个钩子函数
app.directive('color', {
created(el, binding, vnode, prevVnode) {
console.log('指令已绑定');
},
beforeMount(el, binding, vnode, prevVnode) {
console.log('组件挂载之前');
},
mounted(el, binding, vnode, prevVnode) {
// 改变元素背景颜色
el.style.backgroundColor = binding.value;
},
beforeUpdate(el, binding, vnode, prevVnode) {
console.log('组件更新之前');
},
updated(el, binding, vnode, prevVnode) {
console.log('组件已更新');
},
beforeUnmount(el, binding, vnode, prevVnode) {
console.log('组件卸载之前');
},
unmounted(el, binding, vnode, prevVnode) {
console.log('组件已卸载');
}
});
// 使用自定义指令
<template>
<input v-focus />
<div v-color="'red'">This div has a red background</div>
</template>
全局自定义指令:
app.directive() 方法注册一个全局指令。v-focus 的指令,它会在元素挂载后自动聚焦。局部自定义指令:
directives 字段来定义局部指令。v-focus 指令仅在当前组件中可用。更复杂的自定义指令:
created, beforeMount, mounted, beforeUpdate, updated, beforeUnmount, unmounted)。v-color 指令会根据传入的颜色值改变元素的背景颜色,并且会在不同的生命周期阶段输出日志信息。使用自定义指令:
v- 前缀使用自定义指令,例如 v-focus 和 v-color。上一篇:vue3 refs
下一篇:vue插件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站