vue自定义指令directive实例详解


Posted in Javascript onJanuary 17, 2018

下面给大家介绍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>
 <div>
  <input v-model="dir1" v-my-directive1="dir1"/>
 <input v-model="dir2" v-my-directive2="dir2"/>
 </div>
</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>

总结

以上所述是小编给大家介绍的vue自定义指令directive实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用javascript作一个通用向导说明
Aug 30 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
Jun 23 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
Chrome调试折腾记之JS断点调试技巧
Sep 11 Javascript
js封装成插件的步骤方法
Sep 11 Javascript
JS+canvas绘制的动态机械表动画效果
Sep 12 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
JavaScript中的一些隐式转换和总结(推荐)
Dec 22 Javascript
解决axios发送post请求返回400状态码的问题
Aug 11 Javascript
JavaScript ES2019中的8个新特性详解
Feb 20 Javascript
JavaScript实现音乐播放器
Aug 14 Javascript
移动web开发之touch事件实例详解
Jan 17 #Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 #Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
Jan 16 #Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
Jan 16 #Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 #Javascript
微信小程序实现流程进度的图样式功能
Jan 16 #Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
Jan 16 #Javascript
You might like
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
2014过年倒计时示例
2014/01/31 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
js实现3d悬浮效果
2017/02/16 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
jquery仿微信聊天界面
2017/05/06 jQuery
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
机器学习10大经典算法详解
2017/12/07 Python
python实现音乐下载的统计
2018/06/20 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
历史学专业个人的自我评价
2013/10/13 职场文书
超市营业员求职简历的自我评价
2013/10/17 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
小学教师培训方案
2014/06/09 职场文书
质量提升方案
2014/06/16 职场文书
岗位安全生产责任书
2014/07/28 职场文书
师德师风剖析材料
2014/09/30 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis