这篇文章主要介绍了vue自定义指令directive的相关资料,下面通过实例给大家介绍,需要的朋友可以参考下
下面给大家介绍vue自定义指令directive,具体内容如下所示:
官网截图实例
vue除了一些核心的内部定义的指令(v-model,v-if,v-for,v-show)外,vue也允许用户注册自己的一些功能性的指令,有时候你实在是要对Dom操作,这个时候是自定义指令最合适的了。
来直接看例子:当页面加载时使得元素获得焦点(autofocus 在移动版 Safari 是不支持的),就是当页面加载好了,不做任何的操作使得表单自动获得焦点,光标自动在某个表单上代码如下:
Vue.directive('zsqfocus', { // 注册一个全局自定义指令 `v-zsqfocus`,在main.js文件里
inserted: function (el) { // 当被绑定的元素插入到 DOM 中时自动调用
el.focus() // 聚焦元素
}
})如果想注册局部指令,组件中也接受一个 directives 的选项:
立即学习“前端免费学习笔记(深入)”;
<script>
export default {
directives: { // 指令的定义
zsqfocus: {
inserted: function (el) { // 获得焦点
el.focus()
}
}
}
}
</script>然后你可以在模板中任何组件上使用新的 v-zsqfocus 属性,如下:
<template> <input v-zsqfocus /> //调用 </template>
举了一个跟官网一样的例子,directives跟methods,mounted等是一个级别的可以同时使用。
PS:下面看下vue之自定义指令directive的实例代码,具体代码如下所示:
<template>
<p>
<input v-model="dir1" v-my-directive1="dir1"/> <input v-model="dir2" v-my-directive2="dir2"/>
</p>
</template>
<script>
export default {
data(){
return { dir1:'', dir2:''
}
},
directives:{ //直接绑定函数,作用等同于update,不做准备工作和扫尾工作
myDirective1(val){
console.log(val)
}, myDirective2:{ bind(){ //第一次绑定到元素的准备工作 }, update(val,old){ //在绑定到元素后立即以初始值第一次调用,然后每次example2变化都会调用update console.log(val) }, unbind(){ //销毁前的清理工作 } }
}
}
</script>上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在webpack-dev-server中实现远程访问配置方法
以上就是在vue中如何开发自定义指令directive的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号