React Context API和Hooks有什么区别?

时间:2019-07-20 09:07:45

标签: javascript reactjs react-hooks conceptual

据我了解,它们都处理状态。挂钩似乎是组件状态的更内部组件,而上下文api似乎解决了prop钻探的问题,从而创建了更全局的状态?这是假的吗?我想念什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

据我了解,它们具有完全不同的用例。上下文允许您将值传递到组件树的深处,该值可以是任何种类的道具,例如颜色。通过以这种方式使用上下文,可以避免在每个需要传递主题颜色的组件上进行props.theme

另一方面,钩子代替了对类的需要;而是创建一个函数,而useState使您可以传入变量。即挂钩允许您获取React函数组件并为其添加状态,并应用生命周期方法,例如componentDidMount和componentDidUpdate。这很有用,因为如果您发现函数需要状态,则无需将其重构为类,只需添加Hooks。 :)当然,这种选择在开发人员中引起争议。