所以在我的代码中,我有一个计算值today
,允许我使用以下代码访问当前日期,月份和年份:
today: function() {
var currentDate = new Date();
return {
day: currentDate.getDate(),
month: currentDate.getMonth(),
year: currentDate.getFullYear()
};
}
现在据我所知,计算属性和方法之间的区别在于计算出的props被缓存,只有在它们的依赖关系(例如,普通属性)发生变化时才重新计算,而每次都完全计算方法。
现在在我的情况下,没有依赖关系。因此,如果在初始化时,它是2017年12月24日,深夜,几分钟后我访问today.day
当它是25日时 - 我将获得原始值还是重新计算该值?
从技术上讲,没有属性是此计算属性的依赖项,因此没有任何更改。根据官方指南中的以下摘录,today.day
应该仍然等于24
。
然而,不同之处在于计算属性是根据其依赖性进行缓存的。计算属性仅在其某些依赖项发生更改时才会重新计算。
答案 0 :(得分:1)
事实上,答案实际上甚至隐藏在官方指南中的几行代码中:
这也意味着以下计算属性永远不会更新,因为Date.now()不是一个被动依赖:
computed: {
now: function () {
return Date.now()
}
}
因此,在这种情况或类似情况下,您应该使用方法。
我希望这可以帮助那些不想在每次有问题时阅读整个指南的人,而是选择使用google / stackoverflow。