Vue中的混入的使用(vue mixins)

网友投稿 275 2023-01-30


Vue中的混入的使用(vue mixins)

使用场景:

例如我们在vue单页面开发的时候当多个组件中都需要下拉刷新,或者使用的都是一个方法的时候,我们就可以使用vue mixins进行封装调用,以及继承,具体看代码。

选项合并

var mixin = {

data: function () {

return {

message: 'hello'

}

},

created:function(){

console.log('我是mixins中的created')

},

methods:{

show:function(num){

console.log(num) //mixins种的函数可以接收组件种的传参。

},

foo: function () {

console.log('foo')

},

conflicting: function () {

console.log('from mixin')

}

}

}

var vm = new Vue({

mixins: [mixin],

data: function () {

return {

title: 'def',

message: 'goodbye'

}

},

created: function () {

console.log('我是Vue中的created')

console.log(this.$data)

this.show(50); //可通过函数传参,把组件中需要的参数传给mixins进行使用。

},

methods:{

bar: function () {

console.log('bar')

},

conflicting: function () {

console.log('from self')

}

}

})

vm.foo() // => "foo"

vm.bar() // => "bar"

vm.conflicting() // => "from self"

注意以下三点:

1、当组件和混入对象含有同名选项时,这些选项将以恰当的方式混合。比如,数据对象在http://内部会进行浅合并 (一层属性深度),在和组件的数据发生冲突时以组件数据优先。

2、同名钩子函数将混合为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

3、值为对象的选项,例如 methods, components 和 directives,将被混合为同一个对象。两个对象键名冲突时,取组件对象的键值对。

全局混入

也可以全局注册混入对象。注意使用! 一旦使用全局混入对象,将会影响到 所有 之后创建的 Vue 实例。使用恰当时,可以为自定义对象注入处理逻辑。

//为自定义的选项 'myOption' 注入一个处理器。

Vue.mixin({

created: function () {

var myOption = this.$options.myOption

if (myOption) {

console.log(myOption)

}

}

})

new Vue({

myOption: 'hello!'

})

// => "hello!"


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现线性表及其算法
下一篇:api接口自动化测试实例(接口自动化测试项目实战)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~