vue.js 是不是更新依赖于方法的计算属性?
Posted
技术标签:
【中文标题】vue.js 是不是更新依赖于方法的计算属性?【英文标题】:Does vue.js update computed properties that depend on methods?vue.js 是否更新依赖于方法的计算属性? 【发布时间】:2018-01-30 22:34:41 【问题描述】:所以在我的代码中,我有一个计算值 today
,它允许我使用以下代码访问当前的日期、月份和年份:
today: function()
var currentDate = new Date();
return
day: currentDate.getDate(),
month: currentDate.getMonth(),
year: currentDate.getFullYear()
;
现在就我的理解而言,计算属性和方法之间的区别在于,计算属性被缓存并且只有在它们的依赖项(例如,普通属性)发生变化时才会重新计算,而方法每次都会被完全计算。
现在就我而言,没有依赖关系。因此,如果在初始化时,它是 2017 年 12 月 24 日深夜,几分钟后我访问 today.day
时是 25 日 - 我会得到原始值还是会重新计算该值?
从技术上讲,没有属性是此计算属性的依赖项,因此没有任何变化。根据官方指南的以下摘录,today.day
仍应等于 24
。
但是,不同之处在于计算属性是根据它们的依赖关系缓存的。计算属性仅在其某些依赖项发生更改时才会重新评估。
【问题讨论】:
【参考方案1】:答案,其实就连官方指南中的几行代码都隐藏起来了:
这也意味着以下计算属性将永远不会更新,因为 Date.now() 不是反应性依赖:
computed:
now: function ()
return Date.now()
因此,在这种或类似情况下,您应该使用方法。
我希望这可以帮助那些不想在每次遇到问题时都阅读整个指南,而是更喜欢只使用 google/*** 的人。
【讨论】:
以上是关于vue.js 是不是更新依赖于方法的计算属性?的主要内容,如果未能解决你的问题,请参考以下文章