vue - mixin混入

1. mixin概念

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项,data、components、methods 、created、computed等等。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。当组件使用了mixin时, mixin中的生命周期函数会先执行,然后在执行组件中的生命周期;

2. 适用场景

当我们存在多个组件中的数据或者功能很相近时,我们就可以利用mixins将公共部分提取出来,通过 mixins封装的函数,组件调用他们是不会改变函数作用域外部的。
作用: 减少data、methods、钩子函数等的重复

3. 代码示例

代码示例

4. 混入方式

  1. 自定义混入的方式如上代码示例; 开发者可以根据自己的需要定义不同的模块,按需引入;
  2. 全局混入


    代码示例
  • 全局注册之后会对所有组件都生效,影响比较大, 建议合理使用;

5. mixin 选项合并的方式

  1. mixin 中定义的方法和参数在各组件中不共享,即当前组件对mixins的属性的修改,其他也引用了这个mixins的组件不会受影响;
  2. mixin中定义的生命周期函数会比引用组件的生命周期先执行, 会和组件中定义的methods,created等选项合并调用;
  3. mixin对象里的(components、methods 、computed、data)这些选项,混入组件时选项会被合并,重名冲突时优先采用组件中定义的数据
  4. 如果同时引入多个mixin对象, 执行顺序和引入顺序一致;

6. mixin 和 vuex及封装公共组件的区别

  1. 与vuex的区别: vuex用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之修改。而mixin中定义的值,也可以在任意组件中进行修改, 但其他组件的值并不会因此受到影响;(mixin中定义的数据在各个组件中相互独立)
  2. 与公用组件的区别: 在组件中引入公共组件,相当于在父组件中给出一片独立的空间供子组件使用,然后根据props来传值,但本质上两者是相对独立的, 但vue不建议修改父组件传递的值; 而在组件中直接引入mixin之后, 是可以对mixin中的数据进行修改的, 组件中引入mixin本质上是对组件的扩展,从而形成一个新的组件;

参考文档

官网
Vue — 详解mixins混入使用,应用场景

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.前言 1.一切反动派都是纸老虎2.之前没怎么用这个混入 心理上就觉得挺难,其实看看也就不过如此3.这也是初心,...
    云高风轻阅读 1,459评论 2 1
  • 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选...
    臭臭的胡子先生阅读 8,895评论 0 1
  • mixins: 用来更高效的实现组件内容的复用, 混入对象可以包含任意组件选项. 注意: mixin混入对象 &...
    Peter_2B阅读 3,177评论 0 0
  • 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选...
    Yandhi233阅读 1,157评论 0 0
  • mixin混入 复用代码段(类似于函数的用法) 场景: 多个组件如有相同的属性,方法等 定义一个公共的混入,方便...
    范乔丹阅读 1,378评论 0 0

友情链接更多精彩内容