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获取xml节点的最大值(实现代码)
Dec 11 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
Javascript学习指南
Dec 01 Javascript
JavaScript中用于生成随机数的Math.random()方法
Jun 15 Javascript
jQuery插件dataTables添加序号列的方法
Jul 06 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
Oct 24 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
微信小程序实现收货地址左滑删除
Nov 18 Javascript
微信小程序tabBar 返回tabBar不刷新页面
Jul 25 Javascript
利用promise及参数解构封装ajax请求的方法
Mar 24 Javascript
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
详解处理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-Java-Bridge使用笔记
2014/09/22 PHP
PHP不使用内置函数实现字符串转整型的方法示例
2017/07/03 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
Python os模块介绍
2014/11/30 Python
Python中用于转换字母为小写的lower()方法使用简介
2015/05/19 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
Sony C++笔试题
2013/03/10 面试题
信息技术培训感言
2014/03/06 职场文书
通信工程专业求职信
2014/06/04 职场文书
超市客服工作职责
2014/06/11 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
2014年财务工作总结范文
2014/11/11 职场文书