为什么最初呈现反应缓慢的列表?
Why is rendering a list with react slow initially?
我有一个包含大约 200 个要呈现的项目的列表。由于它只有 200 个项目(table 中大约有 200 行,每行都包含一个简短的文本短语),我认为在客户端完成它会很快。我使用 backbone 集合并将反应 table 组件绑定到它。但不知何故,在整个 table 加载之前至少需要几秒钟。
你可以自己试试 运行 https://github.com/tastejs/todomvc/tree/gh-pages/examples/react-backbone(当你在 table 中填充 200 项,然后刷新页面时,这 200 行需要几秒钟才能呈现最初)。我意识到 ENTIRE table 的渲染方法被调用了 200 个项目,并且由于 table 的每个渲染都意味着该行也被重新渲染,我们得到了疯狂数量的渲染调用。为什么对于每个额外的行,即使我通过 collection.fetch() 在 backbone 中同时提取这些行,也会调用 table 的整个渲染方法?如果我不想在服务器端呈现,如何加快速度?
经过更多调查,我意识到 backbone 获取一个集合,它一次填充一个模型。每次填充模型时,都会调用渲染,这会减慢进程。我通过仅在成功获取整个集合时渲染组件来解决它。
我有一个包含大约 200 个要呈现的项目的列表。由于它只有 200 个项目(table 中大约有 200 行,每行都包含一个简短的文本短语),我认为在客户端完成它会很快。我使用 backbone 集合并将反应 table 组件绑定到它。但不知何故,在整个 table 加载之前至少需要几秒钟。
你可以自己试试 运行 https://github.com/tastejs/todomvc/tree/gh-pages/examples/react-backbone(当你在 table 中填充 200 项,然后刷新页面时,这 200 行需要几秒钟才能呈现最初)。我意识到 ENTIRE table 的渲染方法被调用了 200 个项目,并且由于 table 的每个渲染都意味着该行也被重新渲染,我们得到了疯狂数量的渲染调用。为什么对于每个额外的行,即使我通过 collection.fetch() 在 backbone 中同时提取这些行,也会调用 table 的整个渲染方法?如果我不想在服务器端呈现,如何加快速度?
经过更多调查,我意识到 backbone 获取一个集合,它一次填充一个模型。每次填充模型时,都会调用渲染,这会减慢进程。我通过仅在成功获取整个集合时渲染组件来解决它。