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中jscript/javascript的条件编译
Sep 07 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
多种方法实现load加载完成后把图片一次性显示出来
Feb 19 Javascript
JavaScript实现的石头剪刀布游戏源码分享
Aug 22 Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 Javascript
浅谈javascript中关于日期和时间的基础知识
Jul 13 Javascript
基于jQuery实现中英文切换导航条效果
Sep 18 Javascript
最常见的左侧分类菜单栏jQuery实现代码
Nov 28 Javascript
使用Node.js搭建静态资源服务详细教程
Aug 02 Javascript
详解小程序如何避免多次点击,重复触发事件
Apr 08 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
详解JavaScript类型判断的四种方法
Oct 21 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
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jQuery实现进度条效果代码
2015/12/17 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
微信小程序实现弹出层效果
2020/05/26 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
react高阶组件添加和删除props
2019/04/26 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
[07:40]DOTA2每周TOP10 精彩击杀集锦vol.4
2014/06/25 DOTA
python实现提取百度搜索结果的方法
2015/05/19 Python
Python进程间通信之共享内存详解
2017/10/30 Python
python解释器spython使用及原理解析
2019/08/24 Python
python同步windows和linux文件
2019/08/29 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
三好学生自我鉴定
2013/12/17 职场文书
高中自我鉴定
2013/12/20 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
房屋租房协议书范本
2014/12/04 职场文书
2015年女生节活动总结
2015/02/27 职场文书
2019销售早会主持词
2019/06/27 职场文书