bt365体育投注.主頁欢迎您!!

    <acronym id="zvmrr"></acronym>
    <td id="zvmrr"></td>
  • <tr id="zvmrr"><label id="zvmrr"></label></tr>
  • <acronym id="zvmrr"></acronym>
  • react多次setState会对性能有影响吗?

    张巨侠
    • 263
    页面中有很多这种独立获取数据的方法,我给他们单独setState,使每个方法互不影响。但以前看文章说多次的setState,会导致render多次渲染,影响性能。有什么更好的处理方法吗?

    image

    评论
    阅读 439
    2 个回答
    ? 已被采纳

    放心, 尽管用。

    如果你合并了多次setState其实也可能会“变慢”,原因在于本来我直接可以setState的,现在我要等到别人setState,和别人搭档。

    举个例子:

    你去上厕所。 但是你觉得一个人上太寂寞, 你就拉上一个人和你一起。 那你就要等他。 否则的话你直接可以去了。

    至于你说的性能问题, 基本上感觉不到。

    会的,可以做以下措施来优化:

    1. 合并相似的 setState 代码(不过其实 setState(null) 是不会触发 render 的)
    2. 增加一些比对的条件来优化 render 函数,减少多余的渲染逻辑
    3. 利用 shouldComponentUpdate 或者 PureComponent 来减少因父组件更新而触发子组件的 render
    4. 使用 React.memo 用来缓存组件的渲染(与 PureComponent 十分类似,但不同的是,React.memo 只能用于函数组件)
    5. 适当拆分组件其实也可以,因为粒度越小,就越小范围去 render 和 diff,也能提高性能
    宣传栏
    bt365体育投注