Javascript 如何在组件内监视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));

我有一个插件,可以为Vue实例添加一些属性。
然后我可以使用
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,现在有道理了,我错过了这一部分,关于只
数据
是被动的。