咱就是说,瞧瞧这React的Hooks的由来

简介: 咱就是说,瞧瞧这React的Hooks的由来

思维导图

68156028ff054c7bb06d7eed12ccb712_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


React组件的本质

React 组件的模型是从 Model(state 和 props) 到 View 的映射。


单向数流

React使用的是声明式编码。在过去我们要去使用浏览器API去操作真实DOM,现在使用jsx语法糖可以声明式编码。将数据和UI进行绑定,只要数据发生变化就会重新渲染UI。不用去关注细节。

数据绑定 :当 Model 中的状态发生变化 时,UI 会自动变化。


类组件没有被“榨干”

实例

所有 UI 都是由状态驱动的,因此很少会在外部去调用一个类实例(即组件)的方法。要知道,组件的所有方法都是在内部调用,或者作为生命周期方法被自动调用的。

所有的 UI 都是声明出来的,不用处理细节的变 化过程。因此,通过函数去描述一个组件才是最为自然的方式。


继承

React 组件之间是不会互相继承的。大多组件最常用的都是使用组合。


函数组件的缺陷

函数组件是无状态组件

函数组件无法存在内部状态,必须是纯函数,而且也无法提供完整的生命周期机制。


Hooks诞生

函数没有状态,为了让函数拥有状态就添加了一个空间存状态数据来和函数组件进行绑定。

函数和对象不同,并没有一个实例的对象能够在多次执行之间保存状态,那势必需要一个函数之外的空间来保存这个状态,而且要能够检测其变化,从而能够触发函数组件的重新渲染。


Hooks机制

能够把一个外部的数据绑定到函数的 执行。当数据变化时,函数能够自动重新执行。这样的话,任何会影响 UI 展现的外部数据,都可以通过这个机制绑定到 React 的函数组件。

在 React 中,Hooks 就是把某个目标结果钩到某个可能会变化的数据源或者事件源上,那么当被钩到的数据或事件发生变化时,产生这个目标结果的代码会重新执行,产生更新后的结果。


Hook优势

逻辑复用

Hooks 的思想其实 不仅可以用在 React,在其它一些场景也可以被利用。

高阶组件会产生冗余的组件节点,让调试变得困难。使用Hooks可以大大简化。高阶组件几乎是 Class 组件中实现代码逻辑复用的唯一方式,这样会产生额外的组件节点,但是Hooks不会产生额外的组件节点。



关注分离

通过 Hooks 的方式,把业务逻辑清晰地隔离开,能够让代码更加容易理解和维护。

特别是useEffect钩子,基本上代替了3个生命周期(componentDidMount,componentDidUpdata,componentWillUnmount)。一个钩子里面可以写不同时期的执行代码,让业务代码更加集中了。


参考

《React Hooks 核心原理与实战》



目录
相关文章
|
21天前
|
前端开发 JavaScript 开发者
深入理解React Hooks:提升前端开发效率的关键
【10月更文挑战第5天】深入理解React Hooks:提升前端开发效率的关键
|
13天前
|
前端开发 JavaScript
React Hooks 全面解析
【10月更文挑战第11天】React Hooks 是 React 16.8 引入的新特性,允许在函数组件中使用状态和其他 React 特性,简化了状态管理和生命周期管理。本文从基础概念入手,详细介绍了 `useState` 和 `useEffect` 的用法,探讨了常见问题和易错点,并提供了代码示例。通过学习本文,你将更好地理解和使用 Hooks,提升开发效率。
43 4
|
15天前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
2月前
|
前端开发 JavaScript
React_函数式Hooks和Class比较优缺点
React Hooks与Class组件都能返回JSX并接收props,但Hooks无`this`指向问题,用`useEffect`模拟生命周期,`memo`优化性能,状态更新用`useState`;Class组件通过生命周期方法、`PureComponent`或`shouldComponentUpdate`优化,状态用`this.state`和`this.setState`管理。
32 1
React_函数式Hooks和Class比较优缺点
|
21天前
|
前端开发 JavaScript API
探索React Hooks:前端开发的革命性工具
【10月更文挑战第5天】探索React Hooks:前端开发的革命性工具
|
1天前
|
前端开发 JavaScript 开发者
“揭秘React Hooks的神秘面纱:如何掌握这些改变游戏规则的超能力以打造无敌前端应用”
【10月更文挑战第25天】React Hooks 自 2018 年推出以来,已成为 React 功能组件的重要组成部分。本文全面解析了 React Hooks 的核心概念,包括 `useState` 和 `useEffect` 的使用方法,并提供了最佳实践,如避免过度使用 Hooks、保持 Hooks 调用顺序一致、使用 `useReducer` 管理复杂状态逻辑、自定义 Hooks 封装复用逻辑等,帮助开发者更高效地使用 Hooks,构建健壮且易于维护的 React 应用。
7 2
|
5天前
|
前端开发 开发者
React 提供的其他重要 Hooks
【10月更文挑战第20天】React 提供了一系列强大的 Hooks,除了 `useRef` 之外,还有许多其他重要的 Hooks,它们共同构成了函数式组件开发的基础。
18 6
|
13天前
|
前端开发 JavaScript 开发者
React Hooks
10月更文挑战第13天
29 1
|
19天前
|
前端开发
|
25天前
|
前端开发 JavaScript API
利用React Hooks简化状态管理
【10月更文挑战第1天】利用React Hooks简化状态管理