课程目录
课程目录55 集
- 1-1 [useState] 基于vite脚手架初始化react项目 (19:12).mp4
- 1-2 [useState] useState-基本语法 (09:23).mp4
- 1-3 [useState] 状态变化时会触发组件的重新渲染 (05:51).mp4
- 1-4 [useState] 以函数的形式为useState赋初始值 (06:50).mp4
- 1-5 [useState] useState中的set函数是异步修改状态的 (07:45).mp4
- 1-6 [useState] 解决值更新不及时的Bug (09:31).mp4
- 1-7 [useState] 更新对象类型的值 (06:33).mp4
- 1-8 [useState] 模拟forceUpdate实现组件的强制刷新 (04:33).mp4
- 2-1 [useRef] 使用useRef获取DOM元素的实例 (09:14).mp4
- 2-2 [useRef] 使用ref存储组件渲染周期之间的共享数据 (13:11).mp4
- 2-3 [useRef] ref的前两个使用注意事项 (07:01).mp4
- 2-4 [useRef] ref的第三个使用注意事项 (06:01).mp4
- 2-5 [useRef] 无法使用ref直接引用函数式子组件 (06:36).mp4
- 2-6 [useRef] forwardRef和useImperativeHandle (09:15).mp4
- 2-7 [useRef] 基于useImperativeHandle按需向外暴露成员 (04:46).mp4
- 2-8 [useRef] 在子组件中控制成员暴露的粒度 (02:54).mp4
- 2-9 [useRef] useImperativeHandle第三个参数的3种用法 (11:57).mp4
- 3-1 [useEffect 和 useLayoutEffect] 了解函数副作用的概念 (04:38).mp4
- 3-2 [useEffect 和 useLayoutEffect] 省略依赖项数组时的副作用函数的执行时机 (07:09).mp4
- 3-3 [useEffect 和 useLayoutEffect] 指定依赖项数组后副作用函数的执行时机 (03:26).mp4
- 3-4 [useEffect 和 useLayoutEffect] 指定空的依赖项数组后副作用函数的执行时机 (03:58).mp4
- 3-5 [useEffect 和 useLayoutEffect] 说明useEffect的两个使用注意事项 (07:55).mp4
- 3-6 [useEffect 和 useLayoutEffect] 在组件卸载时使用清理函数终止未完成的Ajax请求 (13:24).mp4
- 3-7 [useEffect 和 useLayoutEffect] 在组件卸载时使用清理函数移除事件绑定 (11:15).mp4
- 3-8 [useEffect 和 useLayoutEffect] 为mousemove事件添加throttle节流效果 (04:17).mp4
- 3-9 [useEffect 和 useLayoutEffect] 封装获取鼠标位置的自定义hook (05:53).mp4
- 3-10 [useEffect 和 useLayoutEffect] 封装秒数倒计时的自定义hook (19:46).mp4
- 3-11 [useEffect 和 useLayoutEffect] useLayoutEffect和useEffect的区别 (10:38).mp4
- 4-1 [useReducer] 说明useReducer的基本语法格式 (05:20).mp4
- 4-2 [useReducer] 实现父子组件的基础布局 (03:23).mp4
- 4-3 [useReducer] 在组件中初步使用useReducer (08:36).mp4
- 4-4 [useReducer] 使用initAction函数处理初始数据 (05:15).mp4
- 4-5 [useReducer] 说明dispatch的运行过程并实现修改用户名的操作 (14:27).mp4
- 4-6 [useReducer] 为action指定TS类型 (05:11).mp4
- 4-7 [useReducer] 使用props把父组件的数据传递给子组件使用 (03:36).mp4
- 4-8 [useReducer] 在Son1子组件中实现点击按钮年龄自增 (10:13).mp4
- 4-9 [useReducer] 在Son2子组件中实现点击按钮年龄自减 (04:36).mp4
- 4-10 [useReducer] 在GrandSon组件中实现重置操作 (07:03).mp4
- 4-11 [useReducer] 使用Immer编写更简洁的reducer更新逻辑 (06:44).mp4
- 5-1 [useContext] 了解Context的作用和基本语法 (08:48).mp4
- 5-2 [useContext] 使用Context实现多层组件之间的数据共享 (08:00).mp4
- 5-3 [useContext] 以非侵入的方式使用Context (12:01).mp4
- 5-4 [useContext] 使用Context重构useReducer案例 (13:03).mp4
- 6-1 [性能优化相关的 Hooks] React.memo-使用memo函数缓存组件 (06:06).mp4
- 6-2 [性能优化相关的 Hooks] 使用useMemo对计算的结果进行缓存 (10:16).mp4
- 6-3 [性能优化相关的 Hooks] useCallback-基本用法 (09:53).mp4
- 6-4 [性能优化相关的 Hooks] 基于React.memo和useCallback实现搜索单词 (18:37).mp4
- 6-5 [性能优化相关的 Hooks] useTransition-实现案例的基础布局 (15:42).mp4
- 6-6 [性能优化相关的 Hooks] useTransition-把更新标记为低优先级 (10:54).mp4
- 6-7 [性能优化相关的 Hooks] useTransition-使用isPending显示加载中 (04:02).mp4
- 6-8 [性能优化相关的 Hooks] useTransition-使用注意事项 (04:24).mp4
- 6-9 [性能优化相关的 Hooks] 搜索框案例不适合使用useTransition进行性能优化 (10:04).mp4
- 6-10 [性能优化相关的 Hooks] useDeferredValue-优化搜索案例的性能 (11:26).mp4
- 6-11 [性能优化相关的 Hooks] useDeferredValue-了解和防抖节流的区别 (06:20).mp4
- 6-12 [性能优化相关的 Hooks] useDeferredValue-表明内容已过时 (05:15).mp4






