分享形式:每模块之后要练习
useState(类组件中的setState)基本使用
1.看class组件写的点击次数组件
2.看函数组件写的组件
3.比较两次设置状态的区别
4.抛出问题:
a.setState是同步还是异步,useState是否相同
只在合成事件和钩子函数中是“异步”的,在原生事件和 setTimeout/setInterval等原生 API 中都是同步的。简单的可以理解为被 React 控制的函数里面就会表现出“异步”,反之表现为同步。
参考链接://www.greatytc.com/p/ce39a08b585e
b.setState具有回调函数(同步操作),useState是否有回调函数
useEffect(类组件中的didmount和didUpdate或者willUnmount)的基本使用
一.介绍useEffect的基础用法
1.看class组件didmount和didUpdate
2.看如何使用useEffect代替didmount和didUpdate
二.介绍useEffect的解绑,实现组件的卸载
1.看如何使用useEffect代替willUnmount
2.如何条件执行解绑方法
三. useEffect大致的执行顺序:
渲染 => (如果上面有执行过effect钩子,则先卸载) => useEffect钩子
解释一下副作用:对外部变量产生影响的叫做副作用,纯函数没有副作用(//www.greatytc.com/writer#/notebooks/39505251/notes/56299215/preview)
抛出自己遇到的问题:
1.useEffect中文意思是使用副作用,但是只有useEffect时候才会产生副作用吗
2.和类组件中的有状态组件和无状态组件是一个概念吗(我认为是的)
使用useContext(类组件中的Context)传参:
1.创建Context并导出
2.使用provider发送,用consumer(标签)或者useContext(函数)接收
使用useReducer(本应该是redux中的概念)处理数据:
1.回顾redux中redux如何实现的(看代码)
- 对比一下redux中,参数意义基本上是一致的(看代码)
使用useContext和useReducer实现redux工作流的实例
看代码
useMemo基本使用:
1.单纯传参给子函数后
2.证明一下每次点击“刘能”按钮,赵四对应的方法都是执行,浪费了性能
3.使用useMemo解决问题,就不会每次浪费性能
总结:在父组件状态变化,子组件没有必要跟着改变状态的时候使用
4.讲一下useCallback和useMemo的异同点,介绍一下useCallback
5.讲一下useMemo和useEffect的区别(直接写个例子给大家看,用useEffect看一下效果
(个人认为useEffect可以实现useMemo的效果,但是还是分开比较好)
记住,传入 useMemo 的函数会在渲染期间执行。请不要在这个函数内部执行与渲染无关的操作,诸如副作用这类的操作属于 useEffect 的适用范畴,而不是 useMemo。