关于混入(mixin),vue官方是这么解释的:
混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
刚开始理解可能不太好理解,也就是这么个意思,你可以在混入中定义任何的生命周期,方法,data值,然后把混入引入你想要引入的页面或者组件中,亦或者全局引入,混入中定义的方法、值就是该组件本身的方法,值,所以全局引入的话要慎用。
export const mixin={
data(){
return {
number:1
}
}
created: function () {
this.hello()
},
methods: {
hello: function () {
console.log('hello from mixin!')
}
}
}
局部引入:首先我们在src目录下新建一个名为mixin的文件夹并在mixin文件中创建一个mixin.js文件。
引入:
//这里读的值其实是mixin的值,因为这个时候mixin已经混入到vue实例中了
page1的值是:{{number}}
>
//引入mixin.js
import {mixin} from "./mixin/mixin"
export default {
//这里注意:属性名为mixins,值为数组类型
mixins:[mixin],
data () {
return {}
},
}
>
【vue中mixin混入和vuex状态管理相比较】全局引用:全局混入我们只需要把mixin.js引入到main.js中,然后将mixin放入到Vue.mixin()方法中即可;
import Vue from 'vue'
import mixin from "./mixin/mixin.js"
Vue.mixin(mixin)
混入特性:
1、当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”。比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。同名钩子函数将合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。
2、值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。
vuex状态管理相信大家都已经比较熟了,就不多说了。
mixin混入对象和Vuex的区别:
1、vuex中的方法和变量是可以相互读取并相互更改的,mixin不会。mixin可以定义公用的变量或方法,但是mixin中的数据是不共享的,也就是每个组件中的mixin实例都是不一样的,都是单独存在的个体,不存在相互影响的;
2、mixin可以定义公用的变量或方法,但是mixin中的数据是不共享的,也就是每个组件中的mixin实例都是不一样的,都是单独存在的个体,不存在相互影响的;
推荐阅读
- 软件研发|web移动端基础事件总结与应用
- Vue|Vue第五天学习总结——Vue全家桶之前端工程化(模块化相关规范、webpack、Vue单文件组件、Vue脚手架、组件库——Element-UI 的基本使用)
- vue|vue-cli项目的webpack打包优化
- vue|vue main.js中引入js_VUE 项目如何快速优化(| 原力计划)
- vue|vuepress打包报错(error Error rendering /:)
- vue|vue+xlsx实现表格的导入导出
- vue|vue打包后dist的使用
- vue|vuex的使用
- vue|vue中代理解决跨域