定义全局指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://vuejs.org/js/vue.min.js"></script>
</head>
<body>
<div id="app">
<p v-inserhtml></p>
</div>
<script>
Vue.directive("inserhtml",{
inserted(el){
console.log(el);
el.innerHTML="<b>我是插入的数据</b>"
}
}) ;
const vm=new Vue({
el:"#app"
})
</script>
</body>
</html>
使用Vue.directive定义全局指令,第一个参数是指令的名称,第二个参数是自定义指令的里的钩子函数。
定义局部指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://vuejs.org/js/vue.min.js"></script>
</head>
<body>
<div id="app">
<p v-partdirective></p>
</div>
<script>
const vm=new Vue({
el:"#app",
directives: {
"partdirective":{
bind(el,binding) {
console.log(el);
console.log(binding);
},
inserted(el){
console.log("我是插入的数据");
}
}
}
})
</script>
</body>
</html>
局部自定义指令需要定义到directives对象中。
自定义指令的常用钩子函数
- bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
- inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
- update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。
- unbind: 只调用一次, 指令与元素解绑时调用。
-自定义指令的钩子函数的常用参数 - el: 指令所绑定的dom元素
- binding: 得到自定义指令的信息
需要特别注意的是:自定义指令的名称一定不能有大写。