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