访问计算的 VueJS 的先前值

Posted

技术标签:

【中文标题】访问计算的 VueJS 的先前值【英文标题】:Access the previous value of computed VueJS 【发布时间】:2020-06-05 12:57:57 【问题描述】:

我正在使用计算来检查某些信息何时发生了变化。

当我单击并运行计算时,我可以看到数据中的新值和分配给计算函数的旧值。该值可通过 Chrome Vue 开发工具查看。

我想要做的是访问计算保存的数据,而不是返回。那是以前正确的数据,但计算更新了里面的回报。

我想这样做的原因是为了显示数据不再匹配并且发生了一些变化。

selectedLenses: "30626146713652" <-- Data
changeSelectedLenses: "28717846790196" <-- Computed

单击一个运行计算函数的按钮,它会变为:

selectedLenses: "28717846790196" <-- Data
changeSelectedLenses: "30626146713652" <-- Computed (Want to access this data saved to the computed function)

【问题讨论】:

【参考方案1】:

如果您想观察变化,使用watch 可能是您的最佳选择。它处理 prev 和 next 值,您可以将其分配给观看您的计算...

new Vue(
    //...

    data() 
        return 
            selectedLenses: 0
        ;
    ,

    computed: 
        changeSelectedLenses() 
            return this.selectedLenses + 2;
        
    ,

    watch: 
        changeSelectedLenses(newValue, oldValue) 
            alert(`changeSelectedLenses computed property changed from $oldValue to $newValue`);
        
    
);

【讨论】:

我相信你所做的是正确的答案,现在研究如何将值已更改的事实保存到数据中,这有点复杂。因为我用它来告诉应用程序的其他部分值已更改。 您可以使用Vue.emit('myAction') 让父级知道(监听@myAction)或者,您可以使用Vuex 来管理全局状态。

以上是关于访问计算的 VueJS 的先前值的主要内容,如果未能解决你的问题,请参考以下文章

确定性函数何时使用先前的计算值?

Vuejs:无法在计算属性循环中访问(计算)道具

如何从 Pyspark / Python 数据集中先前计算的列中获取值

如何在不使用 LOOP 的情况下计算取决于先前值的当前值?

SQL 计算基于 Hive 列中先前值重置的累积总和

访问使用计算字段中的SubQuery查找上一个记录