混合是什么
混合 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混合对象可以包含任意组件选项。以组件使用混合对象时,所有混合对象的选项将被混入该组件本身的选项。
例如:
var tpl1={ template:'#stpl1', data:function(){ return {msg:false} }, methods:{ msgf:function(){ this.msg=!this.msg } } } var tpl2={ template:'#stpl2', data:function(){ return {msg:false} }, methods:{ show:function(){ this.msg=true }, hide:function(){ this.msg=false } } } new Vue({ el:'#box', components:{ tpla:tpl1, tplb:tpl2, } })
我们会发现,两个组件中的数据大多数相同,这是我们可以将它们进行混合
// 首先,定义一个混合对象 var mymixin = { data:function(){ return {msg:false} }, methods:{ show:function(){ this.msg=true }, hide:function(){ this.msg=false }, msgf:function(){ this.msg=!this.msg } } } var tpl1={ template:'#stpl1', minins:[mymixin] } var tpl2={ template:'#stpl2', minins:[mymixin] } // 如果我们需要在第一个组件定义data为true时,我们可以直接在组件内定义,他会覆盖mixin的data var tpl1={ template:'#stpl1', minins:[mymixin], data:function(){ msg:true } }
自定义指令
除了默认设置的核心指令( v-model 和 v-show ),Vue 也允许注册自定义指令。注意,在 Vue2.0 里面,代码复用的主要形式和抽象是组件——然而,有的情况下,你仍然需要对纯 DOM 元素进行底层操作,这时候就会用到自定义指令。
// 注册一个全局自定义指令 v-focus Vue.directive('focus', { // 当绑定元素插入到 DOM 中。 inserted: function (el) { // 聚焦元素 el.focus() } })
也可以注册局部指令,组件中接受一个 directives 的选项:
directives: { focus: { // 指令的定义--- } }
然后你可以在模板中任何元素上使用新的 v-focus 属性:
<input v-focus>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“详解Vue.js组件可复用性的混合(mixin)方式和自定义指令”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。