vue之mixin理解与使用
- 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。
- 权重:全局mixins>局部mixins>组件里的构造函数
- 在使用mixins时,相当于将组件内部的内容如data等方法、method等属性与父组件相应内容进行合并。相当于在引入后,父组件的各种属性方法都被扩充了。
- 多个组件可以共享数据和方法,在使用mixin的组件中引入后,mixin中的方法和属性也就并入到该组件中,可以直接使用。钩子函数会两个都被调用,mixin中的钩子首先执行
- 使用:在一个vue文件中使用mixin
定义一个 js 文件(mixin.js)
export default mixin {
data() {
return {
name: 'mixin'
}
},
created() {
console.log('mixin...', this.name);
},
mounted() {},
methods: { //日期转换
formatDate (dateTime, fmt = 'YYYY年M月DD日 HH:mm:ss') {
if (!dateTime) {
return ''
}
moment.locale('zh-CN')
dateTime = moment(dateTime).format(fmt)
return dateTime
}
}
}
在vue文件中使用mixin
import '@/mixin'; // 引入mixin文件
export default {
mixins: [mixin], //用法
data() {
return {
userName: "等你",
time: this.formatDate(new Date()), //这个vue文件的数据源data里面的time就是引用混入进来的方法
arr: [1,2,3,4,5,'文字'],
result: []
}
}
}
或在全局中使用在main.js中,所有页面都能使用了
import mixin from './mixin'
Vue.mixin(mixin) (**全局混入是.mixin没有s**)