vue mixins 调用顺序
data 调用顺序
data 中相同的变量名 以组件中的 变量名的 权重最大
如果data 中没有 变量名 下一步分为两种情况 如果mixins 只含有一个 mix 对象 ( mixin 中的变量名 再次其是 mixin 中的变量名的 权重)
如果mixins 包含多个 对象 权重大的变量名 是 数组中最后一个对象中的 变量名的 权重大 ,权重最小的 是全局Mixin
首先一个全局mixin
Vue.mixin({
data() {
return {
appName: 'main',
appType: 'pc'
}
},
created: function () {
console.log('main')
}
})
A中没有appName 页面appName 显示为app
A中有appName='home' 页面appName 显示为home
A中含有3.1:{
A中无 appName : return {
3.1 有 appName: return minminName
3.1 无 appName: return app
}
A中有 appName : return home
}
A中含有3.1,3.1含有2:{
A中无 appName : return {
3.1 有 appName 无论2中有无appName: return minName
3.1 无 appName: return {
2中有appName :return mixminName
2中无appName :return app
}
}
A中有 appName : return home
}
A中含有3.1,3.2 [3.1,3.2] 3.2 在后面:{
A中无 appName : return {
3.1 有 appName: return min2Name
3.1 无 appName: return {
3.2中有appName :return min2Name
3.2中无appName :return app
}
3.2 有 appName: return min2Name
3.2 无 appName: return {
3.1中有appName :return minName
3.1中无appName :return app
}
}
A中有 appName : return home
}
created 执行顺序 是自上而下 从右向右的 就是 先执行 全局mixin中的额created 在执行 在执行 组件中的 mixin mix 中如果有mix 先执行mixin中的mixin 在执行 mix 最后执行组件中的 created,如果组件中有两个mixin 是先执行 前面的 mixin 在执行后面的 mixin 最终是组件中的 其实和 data 是一样的
其他的 属性可是如此