dcloudio / uni-app

A cross-platform framework using Vue.js
https://uniapp.dcloud.io
Apache License 2.0
40.18k stars 3.64k forks source link

uniapp 计算属性重复setData? #2677

Closed xuweikang closed 3 years ago

xuweikang commented 3 years ago

问题描述 一个uniapp的问题,不解。多个子组件共用一个vuex的计算辅助mapState属性,这个计算变量是同一个,uniapp底层setData为什么是成倍计算数据的。比如,一个state变量A大小是1000kb,我有5个子组件都同时用到了这个state计算,发现uniapp setData的数据量就变成了5000kb了。而我在 用props传值A的话,却还是1000kb

复现步骤

5个子组件,获取同一个vuex state(数据大小是1000k),使用vuex的计算辅助mapState获得。

预期结果 uniapp底层 数据setData应该是1000

实际结果 uniapp底层 数据setData是5000,成倍累加的。这是为何呢?

系统信息:

补充信息 [可选] [根据你的分析,出现这个问题的原因可能在哪里?]

zhetengbiji commented 3 years ago

如果多个组件都使用的话,确实是这样,每个组件都需要把数据同步到视图层。