我已经为此苦苦挣扎了几天,试图找出“反应”的方式来做到这一点。
基本上,我有一棵树,一个可以任意嵌套的列表列表(列表...),我想要一个组件来显示它并启用重新排列。
这是我的数据:
var data = [{
id: 1
}, {
id: 2, children: [
{
id: 3, children: [{id: 6}]
}, {
id: 4
}, {
id: 5
}]
}]
我的第一个步骤是只有一个“树”组件,它在其渲染函数中构建嵌套的 DOM 元素列表(查看这里的代码)。这实际上对于少量元素来说效果很好,但我希望能够支持数百个元素,并且当元素在树中移动时,重新渲染成本非常高(当有几百个元素时约为 600 毫秒)元素)。
所以我想我会让树的每个“节点”成为这个组件自己的实例。但这是我的问题(对不起,介绍很长):
每个节点是否应该从中央“数据库”动态查询它的子 ID 列表并将其存储在状态中?或者最顶层的节点是否应该加载整个树并通过道具传递所有内容?
我仍在努力思考应该如何处理和划分状态和道具。
谢谢