vue的自定义指令
全文一共1200字,由于过于简单理解大约为5分钟
vue官方提供了很多指令了,但是大多数时候有些需求无法满足,所以我们可以结合项目的需求来进行自定义指令
看demo
<template>
<div>
<!-- 高级操作:自定义指令--要求熟练使用原生DOM -->
<!-- 作为使用者可以根据自身和项目需求来自定义指令 -->
<ul>
<li v-red>恺恺</li>
<li v-green>校长</li>
<!-- 自定义指令 v-green -->
<li v-green>RR</li>
</ul>
</div>
</template>
<script>
export default {
// directives:指令
directives: {
// 创建指令v-green
// v-属于固定前缀
green(el){
// el不是固定的
// 参数一:是指令书写所在的元素
console.log("el",el);
console.dir(el);
// 变色
el.style.color="green";
},
red(el){
el.style.color="red";
}
}
};
</script>
<style lang="scss" scoped>
</style>
解析
1.在这里我们使用了directives翻译过来就是指令
2.比如创建指令v-green,v-属于固定前缀,所以就只要写green就行了
创建带参数的自定义指令
解析
<template>
<div>
<!-- 高级操作:自定义指令--要求熟练使用原生DOM -->
<!-- 作为使用者可以根据自身和项目需求来自定义指令 -->
<ul>
<li v-color="'red'">恺恺</li>
<li v-color="'blue'">校长</li>
<!-- 自定义指令 v-green -->
<li v-green>RR</li>
</ul>
</div>
</template>
<script>
export default {
// directives:指令
directives: {
// 创建指令v-green
// v-属于固定前缀
green(el){
// el不是固定的
// 参数一:是指令书写所在的元素
// 变色
el.style.color="green";
},
red(el){
el.style.color="red";
},
// 创建
color(el,bangdin){
// 参数1:还是元素
// 参数二:参数2代表绑定的值(这个值再上面不是固定的,属于形参)
el.style.color=bangdin.value;
console.log(bangdin.value);
}
}
};
</script>
<style lang="scss" scoped>
</style>
结果:
解析
1.创建带参数的指令可以和上面的一样
2. 参数1:还是元素; 参数二:参数2代表绑定的值(这个值再上面不是固定的,属于形参)