VueJS 禁用特定属性的反应性

haa*_*man 7 vue.js

我将此地理库与 Map 和 Layer 和 LayerTree 等对象一起使用。我正在使用 Vue 来可视化 LayerTree。

然而,今天我注意到有些层包含很多(超过 10,000)个项目,这些项目都变得反应性,这完全爆炸了内存使用。我不需要这个,因为我只对显示layerTree的图层的几个属性感兴趣。

是否可以将某些属性声明为非反应性的?

xpu*_*puu 9

在 data 方法返回的内容之外定义的任何内容都是非反应性的。指南中没有关于此的任何官方内容,但到目前为止它只是有效。

...,
data() {
    // Nonreactive
    this.fuu = 'nonreactive'
    // Reactive
    return {
       bar: 'reactive',
    }
},
...
Run Code Online (Sandbox Code Playgroud)

  • 好的。这太棒了。经过几天的尝试解决这个问题,甚至将所有内容重构为 vuex 状态(这不会降低性能),存储超过 20,000 个图表数据点显示数据返回或状态存储存在巨大滞后,使用这个简单的技巧解决了我的问题数据仍然可以在组件中的任何位置访问。 (3认同)