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 相关文章推荐
JQueryEasyUI Layout布局框架的使用
Apr 08 Javascript
利用webqq协议使用python登录qq发消息源码参考
Apr 08 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
JS烟花背景效果实现方法
Mar 03 Javascript
原生JS实现LOADING效果
Mar 16 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
javascript图片预加载完整实例
Dec 10 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
Feb 17 Javascript
JavaScript String 对象常用方法详解
May 13 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
Jun 18 jQuery
Vue 2.0双向绑定原理的实现方法
Oct 23 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批斗大会之缺失的异常详解
2019/07/09 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
24行JavaScript代码实现Redux的方法实例
2019/11/17 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
详细解析Python当中的数据类型和变量
2015/04/25 Python
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
python3.5 email实现发送邮件功能
2018/05/22 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Python实现自动访问网页的例子
2020/02/21 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
python pip如何手动安装二进制包
2020/09/30 Python
玩转CSS3色彩
2010/01/16 HTML / CSS
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
幼儿教师研修感言
2014/02/12 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
长江七号观后感
2015/06/11 职场文书
初中团支书竞选稿
2015/11/21 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技