State Hook
useState():状态钩子。纯函数组件没有状态,用于为函数组件引入state状态, 并进行状态数据的读写操作
语法、参数及返回值说明:
const [xxx, setXxx] = React.useState(initValue)
- 参数: 第一次初始化指定的值在内部作缓存
- 返回值: 包含2个元素的数组,第1个为内部当前状态值,第2个为更新状态值的函数
setXxx()2种写法:
- setXxx(newValue): 参数为非函数值,直接指定新的状态值,内部用其覆盖原来的状态值
- setXxx(value => newValue): 参数为函数,接收原本的状态值,返回新的状态值,内部用其覆盖原来的状态值
Effect Hook
useEffect():副作用钩子。用来更好的执行副作用操作(用于模拟类组件中的生命周期钩子),如异步请求等,在类组件中会把请求放在componentDidMount里面,在函数组件中可以使用useEffect()
useEffect(() => {
// 在此可以执行任何带副作用操作
return () => { // 在组件卸载前执行
// 在此做一些收尾工作, 比如清除定时器/取消订阅等
}
}, [stateValue]) // 如果指定的是[], 回调函数只会在第一次render()后执行
参数、返回值说明:
1.useEffect()接受两个参数,第一个参数是要进行的异步操作,第二个参数是一个数组,用来给出Effect的依赖项,只要这个数组发生变化,useEffect()就会执行。
2.当第二项省略不填时。useEffect()会在每次组件渲染时都会执行useEffect,只要更新就会执行。
3.当第二项传 空数组[ ] 时,只会在组件挂载后运行一次。
4.useEffect()返回值可以是一个函数,在组件销毁的时候会被调用。清理这些副作用可以进行如取消