我正在学习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
如果任何人有更多的信息,我们将不胜感激,如果你能启发我们。提前感谢你。
1条答案
按热度按时间cld4siwp1#
每当你在组件中设置状态时,该组件及其所有子组件都会重新呈现。你可以通过将子组件 Package 在
React.memo
中来记忆它们,这样如果它们的属性没有改变,它们就不会重新呈现。但是,这会增加应用的内存占用,因此通常只有记忆那些重新呈现成本高/速度慢的组件才有意义。而且您的Button
组件呈现起来相当简单。