子组件在每个状态更改时都重新呈现

拉胡尔

活在codeandbox上

我有一个简单的例子

import "./styles.css";
import {useState} from "react";
const Child=({text,idx})=>{
  console.log(`Child - ${idx} rendered`);
  return <li>{text}</li>
}
const ShouldNotRender=()=>{
  console.log("Should not render")
  return <p>Should not render</p>
}
export default function App() {
  const [items,setItems]=useState([]);


  return (
    <div className="App">
      <button onClick={(e)=>{
          setItems([...items,parseInt(Math.random()*500,10)]);
      }}>Add list</button>
      <ul>
        {items.map((item,idx)=>{
            return <Child text={item} key={idx} idx={idx}/>
        })}
      </ul>
      <ShouldNotRender/>
    </div>
  );
}

您可以看到,每当我们将一个项目添加到列表中时,ShouldNotRender它也会重新呈现。ShouldNotRender不依赖于任何状态,则不应重新渲染。它是一个静态且沉重的组件(canvas)

我想将组件分为两个其他组件,一个是静态的,另一个是动态的。好吧,它工作正常,但是我不明白为什么要反应ShouldNotRender组件。

linchong

您也可以使用 React.memo()

const ShouldNotRender = React.memo(() => {
  console.log("Should not render");
  return <p>Should not render</p>;
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

功能组件在状态更改时重新呈现

来自分类Dev

通过其同级触发状态更改时,子组件不会重新呈现

来自分类Dev

react native:如何在状态更改时停止子组件的重新呈现?

来自分类Dev

React组件不会在状态更改时重新呈现

来自分类Dev

组件不会在状态更改时重新呈现

来自分类Dev

reactjs表示组件在redux状态更改时未重新呈现

来自分类Dev

React:子组件未在父状态更改时呈现

来自分类Dev

React-redux组件不会在商店状态更改时重新呈现

来自分类Dev

React + Redux:组件不会在状态更改时重新呈现

来自分类Dev

状态更改时,react组件中的输入元素的值未重新呈现

来自分类Dev

同级组件不会在状态更改时重新呈现(使用useEffect,useState和Context)

来自分类Dev

当RN 0.61中的状态更改时,如何从主组件中重新渲染子组件?

来自分类Dev

如何在多个状态更改的每个状态上重新呈现组件?

来自分类Dev

为什么vue v-for在数据更改时不重新呈现子组件?

来自分类Dev

反应不会在状态更改时重新呈现

来自分类Dev

React不会在状态更改时重新呈现

来自分类Dev

文件状态更改时Vue.js不重新呈现

来自分类Dev

列表 jsx 未在状态更改时重新呈现

来自分类Dev

当父状态更改时,React不呈现子级

来自分类Dev

当 prop 更改时,无状态组件不会重新渲染

来自分类Dev

当父状态在React中更改时停止渲染子组件

来自分类Dev

子组件更改时刷新应用程序状态

来自分类Dev

父状态更改时子组件不会更新

来自分类Dev

数组属性更改时,React子组件不会重新渲染

来自分类Dev

状态更改后功能组件不会重新呈现[React]

来自分类Dev

状态更改后,react-redux组件未重新呈现

来自分类Dev

通过单击来更改状态更改时,React Native ListView不会重新呈现

来自分类Dev

如何不在状态更改时不重新映射数组,而仅呈现更改的内容?

来自分类Dev

在React中重新渲染子组件或更改子状态

Related 相关文章

  1. 1

    功能组件在状态更改时重新呈现

  2. 2

    通过其同级触发状态更改时,子组件不会重新呈现

  3. 3

    react native:如何在状态更改时停止子组件的重新呈现?

  4. 4

    React组件不会在状态更改时重新呈现

  5. 5

    组件不会在状态更改时重新呈现

  6. 6

    reactjs表示组件在redux状态更改时未重新呈现

  7. 7

    React:子组件未在父状态更改时呈现

  8. 8

    React-redux组件不会在商店状态更改时重新呈现

  9. 9

    React + Redux:组件不会在状态更改时重新呈现

  10. 10

    状态更改时,react组件中的输入元素的值未重新呈现

  11. 11

    同级组件不会在状态更改时重新呈现(使用useEffect,useState和Context)

  12. 12

    当RN 0.61中的状态更改时,如何从主组件中重新渲染子组件?

  13. 13

    如何在多个状态更改的每个状态上重新呈现组件?

  14. 14

    为什么vue v-for在数据更改时不重新呈现子组件?

  15. 15

    反应不会在状态更改时重新呈现

  16. 16

    React不会在状态更改时重新呈现

  17. 17

    文件状态更改时Vue.js不重新呈现

  18. 18

    列表 jsx 未在状态更改时重新呈现

  19. 19

    当父状态更改时,React不呈现子级

  20. 20

    当 prop 更改时,无状态组件不会重新渲染

  21. 21

    当父状态在React中更改时停止渲染子组件

  22. 22

    子组件更改时刷新应用程序状态

  23. 23

    父状态更改时子组件不会更新

  24. 24

    数组属性更改时,React子组件不会重新渲染

  25. 25

    状态更改后功能组件不会重新呈现[React]

  26. 26

    状态更改后,react-redux组件未重新呈现

  27. 27

    通过单击来更改状态更改时,React Native ListView不会重新呈现

  28. 28

    如何不在状态更改时不重新映射数组,而仅呈现更改的内容?

  29. 29

    在React中重新渲染子组件或更改子状态

热门标签

归档