gpt4 book ai didi

javascript - HOC 和 ReactJS 中提升状态有什么区别?

转载 作者:行者123 更新时间:2023-12-04 14:12:00 25 4
gpt4 key购买 nike

在 ReactJS 中 HOC 和提升状态有什么区别?在这两种方法中,我们可以共享状态有什么区别?

最佳答案

高阶组件基于共享行为生成新组件,同时提升状态将状态管理移至父组件或祖先组件。

如果状态由高阶组件管理,则它不会被它包装的组件共享。例如:

const useTemperature = (WrappedComponent) => {
return (props) => {
const [temp, setTemp] = useState(0);
return <WrappedComponent {...props} temp={temp} setTemp={setTemp} />
}
}

当您创建组件 useTemperature(Celcius)useTemperature(Farenheit) 时,这两者的状态仍然是分开的。

如果一个状态是通过提升状态来管理的,它会被子组件共享。例如,如果您有以下内容:

const Temperature = () => {
const [temp, setTemp] = useState(0);
return (
<>
<Celcius temp={temp} setTemp={setTemp} />
<Farenheit temp={temp} setTemp={setTemp} />
</>
);
}

Celcius 中调用 setTemp 将在 Farenheit 中更改 temp,反之亦然。

关于javascript - HOC 和 ReactJS 中提升状态有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63572114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com