在此React页面上,它表示您手动需要调用,unmountComponentAtNode因为:
这很重要,经常被遗忘.忘记调用unmountComponentAtNode将导致您的应用程序泄漏内存.
我有一个应用程序,它反复将属性传递给根组件并调用ReactDOM.render.我是否需要调用unmountComponentAtNode容器元素以防止"内存泄漏",无论这意味着什么?
我试着这样做的,发现它会导致所有的子组件重新安装,同时呼吁ReactDOM.render没有unmountComponentAtNode似乎做一个diff,并且不再安装任何的子组件.
所以ReactDOM.render没有电话可以unmountComponentAtNode吗?这会导致任何内存泄漏吗?在这个页面上它说ReactDOM.render:
如果ReactElement先前已呈现为容器,则会对其执行更新,并仅在必要时更改DOM以反映最新的React组件.ReactDOM.render()控制传入的容器节点的内容.第一次调用时,内部的任何现有DOM元素都会被替换.后来的调用使用React的DOM diffing算法进行有效更新.
它没有提到任何副作用.
编辑:我使用Chrome做了一些简单的任务,我ReactDOM.render使用有/无需使用1个简单组件100万次unmountComponentAtNode.根据Chrome任务管理器的说法,该页面大约需要5秒钟才能完成而没有它冻结并消耗10倍(我停止了它因为它冻结了我的窗口).因此,unmountComponentAtNode当证据表明使用它可能会导致内存泄漏时,不确定它们是什么意思.
ReactDOM.render可用于使用新道具更新顶级组件.这是一个完全可以接受的用途.什么unmountComponentAtNode是从DOM中删除组件的顶级DOM节点.否则,由于React对它的引用,DOM节点将被保留,因此内存泄漏.
| 归档时间: |
|
| 查看次数: |
2678 次 |
| 最近记录: |