作者:特贰的大妞 | 来源:互联网 | 2022-10-19 17:39
1> cbdeveloper..:
那是正确的。他们将做基本相同的事情。
在我看来,该useContext
钩子具有更好的可读性语法。
从React Docs:
https://reactjs.org/docs/hooks-reference.html#usecontext
useContext
const value = useContext(MyContext); 接受一个上下文对象(从React.createContext返回的值)并返回该上下文的当前上下文值。当前上下文值由树中调用组件上方最接近的值prop决定。
当组件上方最接近的位置更新时,此Hook将触发重新渲染,并将最新的上下文值传递给该MyContext提供程序。
同样来自React Docs:
https://reactjs.org/docs/context.html
上下文消费者
{value => /* render something based on the context value */}
订阅上下文更改的React组件。这使您可以订阅功能组件中的上下文。
更新:
来自: http : //brianyang.com/react-hooks-a-deeper-dive-featuring-usecontext-and-usereducer/
useContext
消费上下文的新钩子不会更改围绕上下文的概念,因此会出现上述情况。此上下文挂钩仅为我们提供了一种额外的,更漂亮的方式来使用上下文。将其应用于消耗多个上下文的组件时,它非常有用。
要记住的一件事是,当上下文中的任何项目发生更改时,无论从项目中进行了什么重构,useContext都会导致重新渲染。使用context.consumer,可以将选定的属性从值传递到组件中,并且仅当这些选定项更改时才会重新呈现。