我正在制作一个简单的表格,并开始思考哪种方式更好或更准确地书写。我知道使用创建的钩子会更好,但是..我只是想知道你们怎么想的。
我们必须显示实时数据(更新周期为1秒),但它是非常可变的。因此,我在计算属性中调用了一个initData()函数,但我的前辈使用了created()钩子。
me: 1.方法:{ initData() {axios.get().then() }}
2.在计算属性中调用它(因为它每秒更新一次):
getInitData() { this.initData() return this.data}
我的前辈: 1.方法:相同2.在创建的钩子中调用它(因为它是初始化的):created() {this.initData()}
3.在计算属性中返回它(因为它每秒都会更新):
getInitData() { return this.data}
所以..。您认为这两种情况之间的性能差异是什么?
发布于 2020-06-02 06:40:03
如果您在computed
中进行反应性属性更改,将会创建一个无限循环
更改this.data
->计算属性recalculated
-->更改this.data
在computed
中,反应式数据被缓存,并在发生更改时触发DOM更改。现在想象一下这样的情况:一旦你收到接口响应,你改变了一个this.data
,一旦this.data
得到改变,它就会触发计算属性,你将再次创建一个网络请求,并再次改变this.data
和computed属性。它将创建一个infinite
循环
而在created
钩子中,它的行为就像一个简单的方法,只有当你的component
被创建时才会触发,这意味着你将第一次获得你的数据并改变this.data
。在重新创建组件之前,它在任何情况下都不会再次触发
https://stackoverflow.com/questions/62146098
复制相似问题