理解vue中mixin,以及使用mixin的注意点
mixin在vue官方文档中是这么解释的:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。mixin为我们提供了两种混入方式:局部混入和全局混入具体怎么用?我们就以局部混入(也就是只有引入了mixin的混入对象才可以使用,并且只有在引入了mixin混入对象
mixin在vue官方文档中是这么解释的:
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
mixin为我们提供了两种混入方式:局部混入和全局混入
具体怎么用?
我们就以局部混入(也就是只有引入了mixin的混入对象才可以使用,并且只有在引入了mixin混入对象的组件中才生效)举个例子
定义一个混入对象
把混入对象混入到组件中
控制台打印结果
mixin的特点
- 方法和参数在各组件中不共享
混合对象中的参数num
组件1中的参数num进行+1的操作
打印结果
组件2中的参数num不进行操作
打印结果
大家可以看到,我在组件1里改变了num里面的值,组件2中的num值还是混入对象里的初始值
- 值为对象的选项,如methods,components等,选项会被合并,键冲突的组件会覆盖混入对象的
混入对象中的方法test()
组件中的方法test()
当我在组件中调用这个重复的方法时
打印结果
可以看到mixin里的test方法被组件里的test方法覆盖了
- 值为函数的选项,如created,mounted等,就会被合并调用,混合对象里的钩子函数在组件里的钩子函数之前调用
混入对象函数中的console
组件函数中的console
打印结果
看了上面的例子,大家应该会很容易理解了吧!
总结:mixin可以定义共用的变量,在每个组件中使用,引入组件中之后,各个变量是相互独立的,值的修改在组件中不会相互影响。
更多推荐
所有评论(0)