Vue (mixins) 混入个人理解 及使用场景

一、理解混入合并的规则

1.data ,同名以组件为准

data (){
    return{
    }
}

2.create 等钩子函数,  先运行mix,再运行组件内

3.methods,components等, 内同名,以组件为准

 

二、理解局部混入和全局混入

1.局部混入  创建mixin.js文件, 在需要的组件或者页面引入

import mixin from '../mixins/mixin'
export default {
    mixins: [mixin],
    data() {
        return {
        }
    }
    mounted() {
        this.mixinMethod()
    }
}

 

2.全局混入,分两种情况,一种是普通的html 中引入, 直接 

Vue.mixin({
        methods: {
            mixinOne: function() {
                console.log('mixinOne')
            }    
        }
    })

第二种 ,在vue 项目中,则可以在main.js中引入,页面组件中直接通过this.访问混入的组件和方法即可

 

 

混入在什么情景需要用到?mixins 的作用可能和 vuex ,公共组件这两个有点像。

mixins和vuex的区别。
vuex公共状态管理,在一个组件被引入后,如果该组件改变了vuex里面的数据状态,其他引入vuex数据的组件也会对应修改,所有的vue组件应用的都是同一份vuex数据。(在js中,有点类似于浅拷贝)
vue引入mixins数据,mixins数据或方法,在每一个组件中都是独立的,互不干扰的,都属于vue组件自身。(在js中,有点类似于深度拷贝)

mixins和公共组件的区别
通用的数据和方法,确实可以提出一个通用的组件,由父子组件传参的形式进行分享公用。
公共组件最主要的作用还是复用相同的vue组件(有视图,有方法,有状态)。
如果只是提取公用的数据或者通用的方法,并且这些数据或者方法,不需要组件间进行维护,就可以使用mixins。(类似于js中封装的一些公用的方法)

 

相关推荐:

如何理解 doctest 中的 “Got nothing” 错误提示

当doctest报错“gotnothing”,意味着被测函数未产生任何可显示的输出(如返回值为none或未显式打印),而预期却有明确输出(如private:80),导致断言失败。 当doctest报错“gotnothing”,意味着被测函数未产生任何可显示的输出(如返回值为none或未显式打印),而...

如何理解 doctest 中的 “Got nothing” 错误及其修复方法

doctest报错“gotnothing”表示函数实际未产生任何可显示的输出(如返回none或无print),但测试用例却期望看到具体值(如'private:80'),本质是返回值与预期不匹配。 doctest报错“gotnothing”表示函数实际未产生任何可显示的输出(如返回none或无prin...

Python生成器yield关键字怎么理解_掌握惰性求值优化大内存处理

yield将函数变为生成器工厂,调用返回generator对象而非执行结果;与return的本质区别在于:return终止函数并丢弃局部变量,yield暂停函数并完整保留栈帧(含局部变量和执行位置),下次从yield下一行继续。 yield是什么,它和return有什么本质区别 yield不是“暂停...

Python Web框架怎么选_Django与Flask在不同场景下的适用分析

Django适合中型业务系统,因其开箱即用的admin、ORM、auth等组件;Flask适合轻量、嵌入式或高度定制场景,如微服务或IoT网关。 什么时候该用Django而不是Flask 如果你要快速上线一个带用户管理、后台编辑、数据库迁移、API和权限控制的中型业务系统,Django是更省力的选择...

Python 中整数除法的多种实现方式及其适用场景

本文详解Python中int(x/y)与x//y在语义、精度、性能和边界行为上的本质差异,指出二者结果并不等价,并系统对比其适用场景,同时介绍位运算等高效替代方案。 本文详解python中`int(x/y)`与`x//y`在语义、精度、性能和边界行为上的本质差异,指出二者结果并不等价,并系统对比其适...

Python静态方法与类方法怎么选_分析@staticmethod与@classmethod场景

必须用@classmethod当需访问类属性、调用类方法或实现工厂模式;只能用@staticmethod当函数完全独立于类状态。实例方法不适用因强制依赖实例,造成冗余和测试困难。 什么时候必须用@classmethod 当你需要在方法里访问或修改类属性、调用其他类方法,或者想实现工厂模式(比如根据不...

为什么Python中的元组比列表更适合作为字典键_理解元组的不可变性与哈希值

元组能当字典键而列表会报TypeError,因字典依赖哈希表,要求键不可变且__hash__恒定;元组若含可变元素(如列表)也不可哈希,单元素元组须写为(1,),用str或json.dumps替代会丢失语义、降低性能。 为什么元组能当字典键而列表会报TypeError 因为字典底层依赖哈希表,而哈希...