关于memo,useCallback

来源:6-6 日趋完美 - Menu 组件编码第三部分

寂寞追不上我

2020-04-21

请问老师,如图中这种函数需要用useCallback包裹吗?这个函数依赖的参数index是接收的,是不是每次都会重新创建?
我个人理解,useCallBack每次都会执行,只是根据依赖来判断是否生成新的结果,如果要性能优化必须要结合memo一起?
图片描述

另外,如果用memo包裹MenuItem,会导致外层取不到displayName,ts貌似不能推断memo返回的匿名函数的类型,应该如何解决呢?
图片描述
又是这么多问题,真不好意思,麻烦蟀蟀七七的老师了~~~

写回答

1回答

张轩

2020-04-22

同学你好 关于 memo 和 useCallback 几个字感觉写不完 推荐你看看这篇文章欧 https://jancat.github.io/post/2019/translation-usememo-and-usecallback/

还有这个问答:https://stackoverflow.com/questions/57156582/should-i-wrap-all-functions-that-defined-in-component-in-usecallback

第二个问题 你应该把它断言为 React.NamedExoticComponent 类型把,上面有 displayName 属性,可以试试好不好用

interface NamedExoticComponent<P = {}> extends ExoticComponent<P> {
    displayName?: string;
}


0
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2124 学习 · 959 问题

查看课程