vue 混入 (mixin) 的理解和使用

在vue的官方文档是这样解释的:混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。简单的理解就是它可以制作一个可以复用的功能,可以复用到各个组件中,同时呢这个mixin功能可以使用vue组件里任意组件选项,比如data,method,watch,和各个生命周期函数。当需要运用的组件,引用它时,相当于把mixin的各个组件选项合并到引用的组件中。

var mixin = {
  data: function () {
    return {
      message: 'hello',
      foo: 'abc'
    }
  }
}

new Vue({
  mixins: [mixin],
  data: function () {
    return {
      message: 'goodbye',
      bar: 'def'
    }
  },
  created: function () {
    console.log(this.$data)
    // => { message: "goodbye", foo: "abc", bar: "def" }
  }
})

我们可以看到,钩子函数created所打印的数据也包含有对象mixin data里的数据。

项目中的运用

项目中我们可以创建一个mixins的文件夹,文件里有我们需要运用的mixin功能文件


image.png

在需要运用的组件里引用我们需要的mixins文件

<script>
import toggle from "@/components/mixins/toggle.js";
export default {
   mixins: [toggle],
}
</script>

这样我们就可以复用toggle.js里的toggleShow方法了。

使用场景

给项目添加可以复用的功能,有很多方法,那我们应该在什么使用运用vue mixin功能呢?我的理解是如果一个功能需要运用vue 组件里的组件选项,比如data,computed,以及各种钩子函数的时候,用mixin是首选。

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

推荐阅读更多精彩内容

友情链接更多精彩内容