小编Ray*_*keC的帖子

如何使用React + Flux快速渲染> 10000个项目?

我想问一下在React中快速渲染> 10000个项目的正确方法是什么.

假设我想创建一个checkboxList,其中包含超过动态的10000个复选框项.

我创建了一个包含所有项目的商店,它将用作复选框列表的状态.

当我点击任何复选框项时,它将按操作更新相应的项目,因此商店已更改.

由于存储已更改,因此会触发复选框列表更新.

复选框列表更新其状态并再次渲染.

这里的问题是,如果我点击任何复选框项目,我必须等待> 3秒才能看到勾选复选框.我不希望这只需要重新渲染一个复选框项.

我试图找到根本原因.最耗时的部分是在复选框列表渲染方法中,与.map相关,它创建Checkbox组件以形成componentList ..但实际上只有1个复选框必须重新渲染.

以下是我的代码.我使用ReFlux作为助焊剂架构.

CheckboxListStore

商店将所有复选框项目存储为地图.(名称为键,状态(true/false)为值)

const Reflux = require('reflux');
const Immutable = require('immutable');
const checkboxListAction = require('./CheckboxListAction');

let storage = Immutable.OrderedMap();
const CheckboxListStore = Reflux.createStore({
	listenables: checkboxListAction,
	onCreate: function (name) {
		if (!storage.has(name)) {
			storage = storage.set(name, false);
			this.trigger(storage);
		}
	},
	onCheck: function (name) {
		if (storage.has(name)) {
			storage = storage.set(name, true);
			this.trigger(storage);
		}
	},
	onUncheck: function (name) {
		if (storage.has(name)) {
			storage = storage.set(name, false); …
Run Code Online (Sandbox Code Playgroud)

javascript checkbox flux reactjs refluxjs

5
推荐指数
1
解决办法
2035
查看次数

标签 统计

checkbox ×1

flux ×1

javascript ×1

reactjs ×1

refluxjs ×1