React Context API 和 Hooks 之间有什么区别?

R. *_*sch 3 javascript conceptual reactjs react-hooks

据我了解,它们都处理状态。Hooks 似乎更内部于组件状态,而 context api 似乎解决了 prop 钻取的问题,创建了一个更全局的状态?这是假的吗?我缺少什么?

多谢!

小智 5

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

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

  • 自定义挂钩是否也允许您使用组件树深处的值?即在组件树内的任何组件中使用 `const {value1, val2, method1, method2, ...} = useMyCustomHook()`,您无需任何上下文和 props 即可获得所有内容。 (3认同)