需要清除的fffect

来源:3-6 useEffect 可控 effect

慕斯卡4653875

2020-05-12

老师 您好,
图片描述
听您讲的 如果effect回到函数返回的是一个函数的时候,在检测到data status数据变化时,就进行重新渲染,但是在重新渲染时,又要先清除之前的effct, 但是您又说到是在react组件卸载的时候才执行清除操作。 那这样理解下来就是在每次更新后,重新渲染前组件都要进行先卸载,老师您看我的理解对吗??? 希望老师指点迷津。非常感谢!!!

写回答

1回答

张轩

2020-05-14

同学你好  这一段话来自 React 官网的原话 请看这里 https://zh-hans.reactjs.org/docs/hooks-effect.html#%E4%BD%BF%E7%94%A8-hook-%E7%9A%84%E7%A4%BA%E4%BE%8B

其实中文的翻译有些问题:英文原版的话术是:“React performs the cleanup when the component unmounts. However, as we learned earlier, effects run for every render and not just once. This is why React also cleans up effects from the previous render before running the effects next time”。其实不仅仅是卸载的时候执行,而是每次更新都会执行 effect 和删除上一次的 effect。

所以结论是:更新会执行执行 effect 和删除上一次的 effect,卸载会执行删除上一次的 effect。”重新渲染前组件都要进行先卸载“这个结论是错误的。

非常感谢同学你找到我说的不严谨的地方! 

0
0

2024更新 Electron+React+七牛云实战跨平台桌面应用

开发一款自动云同步的 Markdown 文件管理软件

1254 学习 · 463 问题

查看课程