javascript 关于React备忘录

tquggr8v  于 2022-12-17  发布在  Java
关注(0)|答案(1)|浏览(164)

我正在学习React。
有几个组件化的按钮,当我单击一个按钮时,其他按钮组件,包括父组件,也会重新呈现。

import { useState } from 'react'

const Button = ({ setState, text }) => {

  console.log(`${text} rendering`)

  return (<button
    onClick={e => setState(prevState => !prevState)}
  >
    {text}
  </button>)
}

const Page = () => {

  console.log('Page rendering')

  const [aaa, setAaa] = useState(false)
  const [bbb, setBbb] = useState(false)

  return (<>

    <div>
      <Button
        setState={setAaa}
        text="A button"
      />
      <pre>{JSON.stringify(aaa, null, 2)}</pre>
    </div>

    <div>
      <Button
        setState={setBbb}
        text="B button"
      />
      <pre>{JSON.stringify(bbb, null, 2)}</pre>
    </div>

  </>)
}

export default Page

如果任何人有更多的信息,我们将不胜感激,如果你能启发我们。提前感谢你。

cld4siwp

cld4siwp1#

每当你在组件中设置状态时,该组件及其所有子组件都会重新呈现。你可以通过将子组件 Package 在React.memo中来记忆它们,这样如果它们的属性没有改变,它们就不会重新呈现。但是,这会增加应用的内存占用,因此通常只有记忆那些重新呈现成本高/速度慢的组件才有意义。而且您的Button组件呈现起来相当简单。

相关问题