Vue Mixin用法

作者: 六寸光阴丶 | 来源:发表于2020-07-13 16:11 被阅读0次

一、 介绍

vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用。

  • index.vue与mixin.js中的数据,计算属性,方法等将进行合并;
  • 如果两者有相同的数据,index.vue文件将覆盖前者;
  • 生命周期钩子入mounted之类的内容两者将都会执行,同名的生命周期钩子,mixin.js中的内容将先执行;
  • index.vue和mixin.js中的数据可以任意方式组合使用,但是为了提高封装性,请尽量避免在mixin.js中使用index.vue的数据或方法,可以在mixin.js中设置默认值,在index.vue中重写mixin.js中的内容;
  • index.vue可以引入多个mixin。

二、 使用

mixin.js

export default {
  data () {
    return {
      data1: 'mixin1',
      data2: 'mixin2'
    }
  },
  computed: {
    computed1 () {
      return this.data1 + this.data2
    },
    computed2 () {
      return this.data1 + this.data3
    }
  },
  mounted () {
    console.log('mixin中的mounted')
  },
  methods: {
    handleMethod1 () {
      console.log(
        `mixin中的方法1,
        data1:${this.data1},
        computed1:${this.computed1}`
      )
    },
    handleMethod2 () {
      console.log(
        `mixin中的方法2,
        data2:${this.data2},
        computed2:${this.computed2}`
      )
    }
  }
}

index.vue

<template>
  <div></div>
</template>
<script>
// 引入mixin
import Mixin from './mixin.js'
export default {
  // 使用,放入一个数组
  mixins: [Mixin],
  data () {
    return {
      data1: 'index1',
      data3: 'index3'
    }
  },
  computed: {
    computed1 () {
      return this.data1 + this.data2
    },
    computed3 () {
      return this.data2 + this.data3
    }
  },
  mounted () {
    console.log('组件中的mounted')
    this.handleMethod1()
    this.handleMethod2()
    this.handleMethod3()
  },
  methods: {
    handleMethod1 () {
      console.log(
        `组件中的方法1,
        data1:${this.data1},
        computed1:${this.computed1}`
      )
    },
    handleMethod3 () {
      console.log(
        `组件中的方法3,
        data3:${this.data3},
        computed3:${this.computed3}`
      )
    }
  }
}
</script>

</script>

执行结果

mixin中的mounted
组件中的mounted
组件中的方法1,data1:index1,computed1:index1mixin2
mixin中的方法2,data2:mixin2,computed2:index1index3
组件中的方法3,data3:index3,computed3:mixin2index3

相关文章

  • 19.extends

    extends的用法和mixin类型,但是没有mixin灵活。用的很少base.vue App.vue exten...

  • 使用ts和vue开发一个应用

    工程创建 基础用法 mixin的使用 mixin-one.ts App.vue 项目代码:https://gith...

  • Vue Mixin用法

    一、 介绍 vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用。 index.vue与mi...

  • Vue mixin 的用法

    定义一个 js 文件(mixin.js) 关于用法,vue文档中有详细的介绍,这里只介绍怎么在一个vue文件中使用...

  • vue minxins 生命钩子 mounted以及create

    这个issues里面看到的,你用了Vue.mixin 的话,或者vue-router(里面有Vue.mixin),...

  • SCSS

    变量 mixin mixin 基本用法 mixin 传一个参数 mixin 传多个参数 extend 基础知识 简...

  • Vue 中使用 mixin

    a.vue b.vue 可以看出 a.vue 与b.vue 中有一个共同的方法 使用mixin 新建mixin.j...

  • vue中mixins的使用

    组件内使用mixin 全局使用mixin(使用Vue.mixin()方法) 参考:https://www.jian...

  • Vue 中mixin 的用法详解

    组件在引用之后相当于在父组件内开辟了一块单独的空间,来根据父组件props过来的值进行相应的操作,单本质上两者还是...

  • 八.Vue3.x中的mixin介绍使用

    1、新建mixin/base.js 2、单独使用mixin, 在home.vue 3、全局配置mixin main...

网友评论

    本文标题:Vue Mixin用法

    本文链接:https://www.haomeiwen.com/subject/xbzacktx.html