这篇文章主要为大家详细介绍了分析Vue.js组件可复用性的混合(mixin)方式和自定义指令,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随四海网的小编两巴掌来看看吧!
混合 (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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持四海网。
本文来自:http://www.q1010.com/184/3812-0.html
注:关于分析Vue.js组件可复用性的混合(mixin)方式和自定义指令的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:vue.js
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。