vue.js自定义组件directives的实例代码


Posted in Javascript onNovember 09, 2018

自定义指令:以v开头,如:v-mybind。

代码示例:

<input v-mybind />
directives:{
  mybind:{
    bind:function (el) {
     el.value = "this is mybind-bind"
    }
  }}

这时页面初始化时,input中会显示this is mybind-bind。

通过directives注册自定义指令mybind,每一个自定义指令中又提供若干钩子,如示例中的bind,bind的作用是定义一个在绑定时执行一次的初始化动作,观察bind函数,它将指令绑定的DOM作为一个参数,在函数体中,直接操作DOM节点为input赋值。

自定义指令的钩子函数:

bind: function () {},
 inserted: function () {},
 update: function () {},
 componentUpdated: function () {},
 unbind: function () {}

官方说明:

bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。
componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。
unbind: 只调用一次, 指令与元素解绑时调用。

钩子函数还提供了一些参数,如上面示例中bind:function (el)的el,

钩子函数参数的官方说明:

el: 指令所绑定的元素,可以用来直接操作 DOM 。
binding: 一个对象,包含以下属性:
name: 指令名,不包括 v- 前缀。
value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2。
oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
expression: 绑定值的字符串形式。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。
arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"。
modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。
vnode: Vue 编译生成的虚拟节点,查阅 VNode API 了解更多详情。
oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

动手实践一下理解更加深刻

代码地址:https://github.com/Demon-han/vue_demo/

其中directives.vue为该实例,其他组件将在其他文章中详细介绍

总结

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

Javascript 相关文章推荐
YUI 读码日记之 YAHOO.lang.is*
Mar 22 Javascript
javascript 面向对象编程 聊聊对象的事
Sep 17 Javascript
javascript 动态生成私有变量访问器
Dec 06 Javascript
Js 时间函数getYear()的使用问题探讨
Apr 01 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
java必学必会之static关键字
Dec 03 Javascript
JavaScript之生成器_动力节点Java学院整理
Jun 30 Javascript
Javascript(es2016) import和require用法和区别详解
Aug 11 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
微信小程序实现圆形进度条动画
Nov 18 Javascript
extjs4图表绘制之折线图实现方法分析
Mar 06 Javascript
详解处理Vue单页面应用SEO的另一种思路
Nov 09 #Javascript
webpack 静态资源集中输出的方法示例
Nov 09 #Javascript
vue中如何去掉空格的方法实现
Nov 09 #Javascript
Vue press 支持图片放大功能的实例代码
Nov 09 #Javascript
KOA+egg.js集成kafka消息队列的示例
Nov 09 #Javascript
详解关于element el-button使用$attrs的一个注意要点
Nov 09 #Javascript
webpack4.x CommonJS模块化浅析
Nov 09 #Javascript
You might like
php文件下载处理方法分析
2015/04/22 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
微信小程序 地图定位简单实例
2016/10/14 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
python编写的最短路径算法
2015/03/25 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python装饰器练习题及答案
2019/11/01 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
使用python+whoosh实现全文检索
2019/12/09 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
CSS实现雨滴动画效果的实例代码
2019/10/08 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
农村党支部先进事迹
2014/01/14 职场文书
军训 自我鉴定
2014/02/03 职场文书
新闻编辑求职信
2014/04/09 职场文书
高中教师考核方案
2014/05/18 职场文书
大学生入党自荐书
2015/03/05 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers