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 相关文章推荐
关于IE中getElementsByClassName不能用的问题解决方法
Aug 26 Javascript
jquery清空表单数据示例分享
Feb 13 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
May 23 Javascript
原生js代码实现图片放大境效果
Oct 30 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
Vue实现active点击切换方法
Mar 16 Javascript
微信小程序实现搜索历史功能
Mar 26 Javascript
JS数组的常用10种方法详解
May 08 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登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP文件锁函数flock()详细介绍
2014/11/18 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
非常好的js代码
2006/06/27 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
在JavaScript中判断整型的N种方法示例介绍
2014/06/18 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
浅谈Python中的bs4基础
2018/10/21 Python
pandas每次多Sheet写入文件的方法
2018/12/10 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
医生实习工作总结的自我评价
2013/09/27 职场文书
公司前台接待岗位职责
2013/12/03 职场文书
求职简历中个人的自我评价
2013/12/25 职场文书
社区反邪教工作方案
2014/06/16 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
2014保险公司个人工作总结
2014/12/09 职场文书
社团个人总结范文
2015/03/05 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
在校证明模板
2015/06/17 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
2021/06/09 Python