目录
useState 的初始值(参数)只会在组件第一次渲染时生效
hooks是什么?
Hooks
:钩子、钓钩、钩住。
是一些可以让你在函数组件里“钩入” React state 及生命周期等特性的函数。
是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。
作用: 为函数组件提供状态、生命周期等原本 在Class 组件中才提供的功能
-
Hooks 只能在函数组件中使用
-
可以理解为通过 Hooks 为函数组件钩入 class 组件的特性
Hooks 前后,组件开发模式的对比
-
React v16.8 以前: class 组件(提供状态) + 函数组件(展示内容)
-
React v16.8 及其以后:
-
class 组件(提供状态) + 函数组件(展示内容)
-
Hooks(提供状态) + 函数组件(展示内容)
-
混用以上两种方式:部分功能用 class 组件,部分功能用 Hooks+函数组件
-
为什么要有 Hooks?
两个角度:1.组件的状态逻辑复用 2.class 组件自身的问题
react组件的本质
React 是用于构建用户界面的 JavaScript 库 。
React组件是对特定功能的封装,主要用来对UI进行拆分。
React 组件的模型其实很直观,就是从 Model 到 View 的映射,这里的 Model 对应到 React 中就是 state 和 props
公式:组件(State+Props) = UI
class 组件自身的问题
在根据状态来渲染UI这件事上,class 组件并没有发挥它最重要的功能:
-
组件之间很少继承
-
组件之间很少相互访问
函数式组件的好处
-
函数本身比较简单,更好的胜任根据状态来渲染UI这件事
-
hooks让函数组件内部有了维护状态的能力
-
hooks带来了组件的逻辑复用能力
hooks的使用策略
-
react没有计划从React中移除class
-
Hook 和现有代码可以同时工作,你可以渐进式地使用:
-
不推荐直接使用 Hooks 大规模重构现有组件
-
推荐新功能用 Hooks,复杂功能实现不了的,也可以继续用 class
-
找一个功能简单、非核心功能的组件开始使用 hooks
-
-
class 组件相关的 API 在hooks中可以不用
-
state与setState
-
钩子函数,
componentDidMount
、componentDidUpdate
、componentWillUnmount
-
`this
相关的用法
-
-
原来学习的内容还是要用的
-
JSX:
{}
、onClick={handleClick}
、条件渲染、列表渲染、样式处理等 -
组件:函数组件、组件通讯
-
React 开发理念:
-