美文网首页
VUE--mixins的一些理解

VUE--mixins的一些理解

作者: 莫伊剑客 | 来源:发表于2020-04-16 13:47 被阅读0次

概念:混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

用法:

1、创建混入对象:在src文件夹创建mixins文件夹,再在mixins文件夹下创建一个index.js文件

// 创建一个需要混入的对象 
export const mixinstest = {
    data(){
        return {
            testMix: '混入对象的data'
        }
    },
    created(){
        console.log('这是混入对象的created')
    },
    methods:{
        mixinsFun(){
            console.log('调用混入对象的methods的函数')
        }
    },
    computed:{
        testMix2(){
            return this.testMix+':这是混入对象计算结果。'
        }
    },
    watch: {
        testMix(newVal,oldVal){
            console.log('混入对象的watch')
        }
    }
}

2、在组件内引入并引用混入

<template>
    <div>
        <div>{{testMix}}</div>
        <div @click="mixinsFun">{{testMix}}</div>
        <input type="text" v-model="testMix">
        <div>{{testMix2}}</div>
    </div>
</template>
<script>
import {mixinstest} from '../../mixins/index' 
export default {
    mixins: [mixinstest],
    data (){
        return {
            testMix:'这是组件的数据'
        }
    },
    created(){
        console.log('这是组件的created')
    },
    methods: {
        mixinsFun(){
            console.log('调用组件的methods的函数')
        }
    },
    computed:{
        testMix2(){
            return this.testMix+':这是组件计算结果'
        }
    },
    watch: {
        testMix(newVal,oldVal){
            console.log('组件的watch')
        }
    }
}
</script>
<style>

</style>

2.1 当在组件中和混入中有相同的‘testMix’这个数据时,显示组件中’testMix’对应的数据,当只用混入中有’testMix‘函数时,显示混入中’testMix’对应的数据。

2.2 在组件中和混入中有相同的函数mixinsFun()时,在组件中调用时,调用的是组件中的mixinsFun()函数,当只用混入中有mixinsFun()函数时,在组件中调用mixinsFun()是调用混入中的。
  2.3 在组件中和混入中有相同的computed函数testMix2()时,在组件中调用时,调用的是组件中的testMix2()函数,当只用混入中有computed函数testMix2()时,在组件中调用testMix2()是调用混入中的。

2.4在组件中和混入中有相同的created()函数时,先执行混入中的created,再执行组件中的created。猜想其他生命周期也应该是一样。

2.5在组件中和混入中有相同的watch()函数testMix时,先执行混入中watch的testMix,再执行组件中watch的testMix。

3、全局使用混入

混入也可以进行全局注册。使用时格外小心!一旦使用全局混入,它将影响每一个之后创建的 Vue 实例。使用恰当时,这可以用来为自定义选项注入处理逻辑。

// 为自定义的选项 'myOption' 注入一个处理器。
Vue.mixin({
  created: function () {
    var myOption = this.$options.myOption
    if (myOption) {
      console.log(myOption)
    }
  }
})

new Vue({
  myOption: 'hello!'
})
// => "hello!"

请谨慎使用全局混入,因为它会影响每个单独创建的 Vue 实例 (包括第三方组件)。大多数情况下,只应当应用于自定义选项,就像上面示例一样。推荐将其作为插件发布,以避免重复应用混入。

相关文章

  • VUE--mixins的一些理解

    概念:混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式。混入对象可以包含任意组件选项。...

  • 一些理解

    近日,江苏南京,一女生深夜乘坐网约车发现司机改道,怀疑其绕路。两人产生矛盾后,女生越想越害怕,在途经收费站时,她强...

  • 一些理解

    周五了,算算时间,上了好长时间的班,不知道怎么说,做不到洒脱,顾虑那么多。好多时候,其实好讨厌自己的性格,在这一块...

  • GTD的一些理解

    GTD(Get Things Done)是一种提高工作效率的方法。通过对你要做的事情进行整理,组织,拆分,然后确定...

  • Redis 的一些理解

    title: Redis 的一些理解date: 2017-04-15 10:07:37 相信每一个工程师对redi...

  • GCD的一些理解

    关于死锁1, https://www.jianshu.com/p/bd574fd21da5 : 概括起来就是:...

  • TVP的一些理解

    流程: 先气矿死神开 死神抓农民和看野建筑 有母舰核心和追猎或者使徒 进家里也骚不到东西 三分钟死神进家 如果不是...

  • HashMap的一些理解

    HashMap的结构: 数组的寻址快,但是数据的插入与删除速度不行。链表的插入与删除速度快,但是寻址速度不行。那有...

  • ThreadLocal的一些理解

    最近看Handler及Activity相关的文章,多次碰到ThreadLocal这个类,该类实现了进程内线程间的通...

  • Spring的一些理解

    1、什么是Spring框架?Spring框架有哪些主要模块? spring是一个开源框架,让java开发模块化,并...

网友评论

      本文标题:VUE--mixins的一些理解

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