ReactHooks会取代Redux吗

得了白癜风该怎样治疗 http://pf.39.net/bdfyy/bdfzg/140808/4443995.html
作者

EricElliott    译者

王强      编辑

Yonie自从React引入了HooksAPI以来,关于ReactHooks是否会取代Redux的讨论也越来越多了。本文作者认为ReactHooks不能取代Redux,并阐述了该观点的理由。

在我看来,Hooks和Redux之间几乎没什么重叠的使用场景。Hooks没那么神奇,没有什么全新的状态功能;它只是增强了React已有API本来就能做的那些事情而已。但hooksAPI提升了原生React状态API的可用性,而且它比被它取代的class模型更简单,所以有了hooks后我在合适的场景中使用组件状态的频率多了很多。

为了阐明我的观点,首先我们来探讨为什么Redux会是首选。

    Redux是什么?  

Redux是一个可预测的状态管理库和架构,可以与React轻松集成。

Redux的主要优点有:

确定性状态视图(与纯组件结合时启用确定性视图呈现)。

事务状态。

状态管理与I/O和副作用隔离。

应用程序状态使用单一信息源。

在不同组件之间轻松共享状态。

事务遥测(自动记录操作对象)。

跟踪调试。

总的来说,Redux提供了强大的代码组织和调试能力。开发者可以使用它构建更易维护的代码,并且在出现故障时更快找到问题的根源。

    ReactHooks是什么?  

开发者只要用ReactHooks就能使用状态和React生命周期中的众多功能,无需再用class和React组件生命周期方法。ReactHooks是React16.8中首次引入的。ReactHooks的主要优点有:

无需class也能在组件生命周期中使用状态和Hooks。

将相关逻辑集中起来放进组件,而不是把它们分散到各个生命周期方法中。

与组件实现(例如呈现prop模式)独立的共享可复用行为。

请注意,ReactHooks的这些吸引人的优点和Redux并没有重叠。你应该使用ReactHooks来获得确定的状态更新,但这也是React本身一直就有的功能,而Redux的确定性状态模型与它配合的很好。这就是React提供确定性视图呈现的手段,而且也是促使React诞生的动力之一。

现在有了react-reduxhooksAPI和React的useReducerhooks等工具,你用不着在Reacthooks和Redux之间二选一了。鱼与熊掌可以兼得,你应该两个都用,搭配起来干活儿。

    Hooks取代了哪些技术?  

自从HooksAPI诞生之后,我不再使用的技术有:

class组件。

呈现prop模式。

    Hooks不能取代的技术有哪些?  

我还在经常使用的技术有:

Redux,原因如前所述。

高阶组件(HigherOrderComponents),这些组件负责构成由全部或多数应用程序视图共享的交叉


转载请注明:http://www.aierlanlan.com/cyrz/519.html

  • 上一篇文章:
  •   
  • 下一篇文章: