问题:
vue2中要监听prototype(原型链)上的全局数据直接用watch监听$global.property是监听不到的。
解决办法:
可以在当前组件的data里声明一个变量global,然后值引用全局数据$global,然后监听这个变量global就可以了。具体如下:
// main.js
// ...
Vue.prototype.$global = {
appName: null,
// ...
}
const createApp = function (res) {
new Vue({
router,
render: h => h(App)
}).$mount('#app')
}
createApp();
监听:
// 组件.vue
export default {
data(){
return:{
global:this.$global,
// ...
}
},
watch: {
"global.appName": {
handler: function (val, oldVal) {
console.log('监听到了');
}
}
}
}