标题应该给您大致的概念。我(我的公司)想开始一个新项目,这是使用React在Angular v1中编写当前网站的重启。 我想知道现在是在生产中使用React Hooks的好时机,如果是的话我将承担什么风险。
PS:没有正确的答案,我只想在实施之前征求一些意见。预先感谢。
答案 0 :(得分:1)
到目前为止,钩子在可测试性和调试方面存在一些问题。钩子的状态无法通过调试器跟踪在组件实例上,就像使用类组件一样,这只能通过React开发工具来实现。酶doesn't fully support hooks呢。挂钩可能比组件生命周期方法更难模拟或监视,因为这无法在组件实例上完成。
钩子有一些固有的问题,有时需要以违反直觉和过于复杂的方式来解决。
useEffect
和useLayoutEffect
函数范围存在一些众所周知的问题,这些问题与setTimeout,事件和其他基于回调的API不能很好地配合使用({{3}中介绍了解决方法}。
shouldComponentUpdate
没有对应项可能导致组件嵌套,以防止不必要的更新。这尤其适用于useContext
。如果需要阻止更新,这并不比上下文Consumer
好得多,并且需要使用嵌套组件:
const WrapperWithConsumer = () => {
return <FooContext.Consumer>
{({ foo }) => <PureWrappedComponent foo={foo}/>}
</FooContext.Consumer>;
}
const WrapperWithHook = () => {
const { foo } = useContext(FooContext);
return <PureWrappedComponent foo={foo}/>
}
与其他任何最近的API一样,钩子限制了要与最新React版本一起使用的项目,防止其组件在较旧的项目中重复使用,并剥夺了切换至替代实现的机会-Preact,Inferno等
答案 1 :(得分:-1)
您可以随时尝试,但是我不建议您这样做,因为该技术还处于早期阶段,请先尝试使用类组件,然后再评估使用挂钩。
也许这篇文章也可以帮助您: https://blog.logrocket.com/react-hooks-lets-not-get-too-attached-11b0ac09b4b5