我从不同的来源了解到 mobx 的性能优于 react 渲染器,并且比 redux 更快。但是,如果我进行了几次测试,它表明向 mobx 可观察对象添加新数据非常慢。在 react-native 环境中,每毫秒都很重要,使用解决方案很棘手,即使循环超过 200 个元素和填充数组也需要超过 100 毫秒我真的很喜欢 mobx 我希望有人可以看看测试代码并给我一些提示 - 我'我做错了以及如何提高性能。
import {observable, transaction,autorun} from 'mobx';
class Runner {
list = observable([]);
run() {
const start = new Date().getTime();
transaction(() => {
for (let i = 0; i < 200; i++) {
this.list.push({
id: observable(i),
one: observable('1'),
two: '2',
three: 3,
x: 'xxxxx',
y: 'yyyyy',
z: 'zzzzz',
z1: 'zzzzz',
z2: 'zzzzz',
z3: 'zzzzz',
z4: 'zzzzz',
});
}
});
console.log('Execution time: ' + (new Date().getTime() - start) + 'ms services ');
}
}
const runner = new Runner();
autorun(() => console.log(runner.list));
runner.run();
在我的笔记本电脑上,大约需要 120 毫秒才能完成。没有 observable-s 需要不到 1ms