• React20函数式编程之HOOK


    • HOOK是React 16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他React特性。HOOK没出现之前,在函数式组件里面只能根据父组件传入的props做一些处理,现在HOOK出现,就可以在函数式组件里面使用state、生命周期等等。
    • 在我们继续之前,请记住HOOK是:
      • 完全可选的。你无需重写任何已有代码就可以在一些组件中尝试HOOK。但是如果你不想,你不必现在就去学习或使用HOOK。
      • 100%向后兼容的。HOOK不包含任何破坏性改动。
      • 现在可用。HOOK已发布于v16.8.0
    • 没有计划从React中移出class
    • HOOK不会影响你对React概念的理解。掐掐相反,Hook为已知的React概念提供了更直接的API:props,state,context,refs以及生命周期。接下来的学习我们就会发现,HOO还提供了一种更强大的方式来组合他们。
    • React Hooks解决了什么问题?
            《1》函数组件不能使用state,一般只用于一些简单无交互的组件,用作信息展示,即我们上面说的展示组件使用,如果需要交互更改状态等复杂逻辑时就需要使用class组件了。
                    React Hooks让我们更好的拥抱函数式编程,让函数式组件也能使用state功能,因为函数式组件比class组件更简洁好用,因为React Hooks的出现,相信未来我们会更多的使用函数式组件。
            《2》副作用问题
                 * 我们一般称数据获取、订阅、定时执行任务、手动修改ReactDOM这些行为都可以称为副作用。而函数式组件处理不了。
                 * 由于React Hooks的出现,我们可以使用useEffect来处理组件副作用问题,所以我们的函数式组件也能进行副作用逻辑的处理了 
            《3》有状态的逻辑重用组件
            《4》复杂的状态管理
                    * 之前我们使用redux、dva、mobx第三方状态管理器来进行复杂的状态管理
                    * 现在我们可以使用useReducer、userContext配合使用实现复杂的状态管理,不同再依赖第三方状态管理器
             《5》开发效率和质量问题
                    * 函数式组件比class组件简洁,开发的体验更好,效率更高的同事应用性能也更好
     
  • 相关阅读:
    BackgroundWorker原理剖析
    委托异步调用时BeginInvoke的陷阱处理
    线程静态在对象缓存中的妙用
    值得珍藏的.NET源码,不保存就没机会了
    .NET 4.5.1 参考源码索引
    .NET 4.5 参考源码索引
    .NET 4.0 参考源码索引
    WWF3.5SP1 参考源码索引
    WCF3.5 SP1 参考源码索引
    .NET 3.5.1 参考源码索引
  • 原文地址:https://www.cnblogs.com/tengfeiS/p/12153226.html
Copyright © 2020-2023  润新知