采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
官方文档说在useMemo, useCallback “内部执行与渲染无关的操作,诸如副作用这类的操作属于 useEffect 的适用范畴,而不是 useMemo。”
但是视频里面,useCallback发送了异步请求这是副作用啊,这不是不应该在useCallback里吗?
我的理解是 useMemo 缓存的是一个值,但是计算过程是在渲染时计算的。如果之后的依赖项不改变,那这个值就不会改变,也就是渲染出来的结果始终不变。而 异步请求 的结果不是函数本身通过计算可以获得的,所以不应该使用 useMemo 来优化 异步请求。但是 useCallback 缓存的是一个方法,每次执行时还会执行这个方法,返回值取决于方法执行后的结果。只是依赖项没有改变时,不会再创建一次。所以他可以用来优化 异步请求。当然也可以用来执行 副作用。useEffect 和 useCallback 还不太一样,useEffect 没有返回值,在 依赖项 改变时执行一个函数。而 useCallback 返回一个函数,并在 依赖项改变时更新 返回的函数。
我不知道 我理解的对不对,事实上我感觉useCallback比较适合用来缓存一个函数组件?这样就相当于把这个函数组件类似在Vue里面用<keep-alive>缓存一样
登录后可查看更多问答,登录/注册
解锁 React17 高阶用法,轻松应对大型复杂长周期项目
2.8k 2
3.1k 7
1.9k 2
1.7k 2
1.8k 1