一堆 useSelector 。
试着用 ahooks 的 useWhyDidYouUpdate ,一个个传入 useSelector ,但没发现问题。
https://ahooks.js.org/zh-CN/hooks/use-why-did-you-update/
发现还有些自定义钩子。。我也怀疑有些封装为对象的没有用 shallowEqual 。
感觉可以封装一下 useSelector ,比较函数返回 false 时,debugger 一下,但又很麻烦。。。
一堆 useSelector 。
试着用 ahooks 的 useWhyDidYouUpdate ,一个个传入 useSelector ,但没发现问题。
https://ahooks.js.org/zh-CN/hooks/use-why-did-you-update/
发现还有些自定义钩子。。我也怀疑有些封装为对象的没有用 shallowEqual 。
感觉可以封装一下 useSelector ,比较函数返回 false 时,debugger 一下,但又很麻烦。。。
|
sweetcolaJul 28, 2022
1
|
|
swirlingJul 28, 2022
2
我一般删一半代码 直接二分法找...
|
|
Mark24Jul 28, 2022
3
不用 Hooks ✅
这就是 hooks 的问题 |
|
4
不用 Hooks ✅
|
|
ChemistJul 28, 2022 via iPhone
5
为什么这么在意渲染了几次
用 jquery 页面就只会渲染一次 |
|
kwrushJul 28, 2022 via iPhone
6
你得先确认是 useSelector 输出变了导致 rerender 不是其他原因,建议用 redux devtool 检查是哪个数据变了。另外严格模式下会渲染两次。另外重渲染和用不用 hook 有什么关系…
|
|
AyaseEriJul 29, 2022
8
React DevTool Profile 一下。不过都用 React 了不应该是大胆的让它重渲染么。
|
|
isekiJul 29, 2022 via Android
9
为什么要关注重渲染的问题,出现性能问题了吗
|
|
10
你需要用 whyDidYouRender 这个库. update 的那个也推荐换 render. React 重新渲染是因为 state 改变了 或者 props 改变了. 我感觉你应该从这个原理下手
|
|
11
看了下文档 上面有提到 你的 useSelect ,网址贴给你 https://github.com/welldone-software/why-did-you-render
|
|
qdxbJul 29, 2022
12
大伙有没有讲解 React 渲染相关的文章推荐?配合 props 、useState 、useMemo 、useEffect 、useRef 这些属性的。
|
|
magicdawnJul 30, 2022 via iPad
13
|
|
ragnaroksAug 1, 2022
14
除了楼上提及的包以外,在绝大部分情况下一定是有数据变更导致了重新渲染,两个对象的内容看起来一样不一定是同一个对象
|