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组件简洁,开发的体验更好,效率更高的同事应用性能也更好
 
posted @ 2020-01-05 18:47  Godfi  阅读(322)  评论(0编辑  收藏  举报