react.js - React dom什么时候被销毁?

查看:657
本文介绍了react.js - React dom什么时候被销毁?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

第一次实例化的时候组件被装载到了dom里,后面state和props改变的时候重新触发render函数,如果现在render里面是两个完全不同的dom(第一次是if里的语句,后面是else里的语句),第一次的dom去了哪里?是被销毁了吗?为什么不调用componentWillUnmount?

解决方案

你的问题是当执行重渲染时,之前的渲染的dom去了哪里?是被销毁了吗?

看要用什么角度看,与你用的结构也有关:

  • 对真实网页dom结构上来说是被销毁了,不存在了。

  • 如果你的dom是用state保存住,至少会保留现在这一份与上一份在state里,超过就没了。没用state保存就GC(垃圾回收)去了,最后剩下只有存在代码里的变量中。

  • 如果你的dom是用redux之类的store保存住,那么在应用执行期间,一直都会在store里,因为这是redux时光旅行的设计,有用过你就会知道了。

为什么不调用componentWillUnmount?

因为componentWillUnmount是生命周期方法,它不是用来卸载(Unmount)组件用的,它是在组件要卸载前,让你可以再多作某些事情用的。也就是说,卸载(Unmount)组件这件事,是React帮你作的,要进行卸载(Unmount)组件前,React会问你,还有什么要作的,你写在这里告诉React就是,他会自动调用,其他的生命周期方法也是类似的设计。

这篇关于react.js - React dom什么时候被销毁?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆