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 相关文章推荐
JavaScript中的new的使用方法与注意事项
May 16 Javascript
PHP 数组current和next用法分享
Mar 05 Javascript
在Vue中如何使用Cookie操作实例
Jul 27 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
vue源码解析之事件机制原理
Apr 21 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
layer.close()关闭进度条和Iframe窗的方法
Aug 17 Javascript
浅谈webpack SplitChunksPlugin实用指南
Sep 17 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
vue实现瀑布流组件滑动加载更多
Mar 10 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获取当前网址及域名的实现代码
2013/06/23 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
php经典算法集锦
2015/11/14 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
jquery 插件之仿“卓越亚马逊”首页弹出菜单效果
2008/12/25 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
jQuery关于导航条背景切换效果实现示例
2013/09/04 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
node省市区三级数据性能测评实例分析
2019/11/06 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python中__call__用法实例
2014/08/29 Python
Python中的choice()方法使用详解
2015/05/15 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
python 录制系统声音的示例
2020/12/21 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
五年级学生评语
2014/04/22 职场文书
2014年党小组工作总结
2014/12/20 职场文书
AudioContext 实现音频可视化(web技术分享)
2022/02/24 Javascript
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers