Javascript 如何在组件内监视Vue实例属性?
我有一个插件,可以为Vue实例添加一些属性。Javascript 如何在组件内监视Vue实例属性?,javascript,vue.js,Javascript,Vue.js,我有一个插件,可以为Vue实例添加一些属性。 然后我可以使用this.$plugin.prop在组件内部访问此属性。我如何观察它的变化?我需要在组件内部基于this.$plugin.prop值做一些事情,但是watch或this.$watch对我来说都不起作用。我假设这是因为watch在组件上下文中工作,所以我不能监视组件外部的变量 mounted() { this.$watch('$plugin.prop', val => console.log(val));
然后我可以使用
this.$plugin.prop
在组件内部访问此属性。我如何观察它的变化?我需要在组件内部基于this.$plugin.prop
值做一些事情,但是watch
或this.$watch
对我来说都不起作用。我假设这是因为watch
在组件上下文中工作,所以我不能监视组件外部的变量
mounted() {
this.$watch('$plugin.prop', val => console.log(val));
}
不起作用。实现这一点的正确方法是什么?您可以使用计算属性,如下所示:
computed: {
pluginChanged() {
console.log(this.$plugin.prop.val);
return this.$plugin.prop.val;
}
阅读有关计算属性的更多信息。请不要使用mounted()
watch: {
'$plugin.prop': function(value){
console.log(value);
}
}
在中关于观察者的官方文档中,您可以尝试在组件的数据模型中存储插件道具引用,然后从组件数据模型中观察该属性-我不知道,但对我来说,它也不能处理组件之外的数据。使用组件tho中的数据。取决于您如何设计自定义插件!你用过吗?如果没有,那么你应该考虑VUE只看<代码>数据< /代码>选项。换句话说,只有数据模型是被动的。如前所述,您可以使用Vuex
库或将该数据存储在组件的data
模型中@MaxSternOh,现在有道理了,我错过了这一部分,关于只数据是被动的。