2.5.17
https://codesandbox.io/s/4k43rylw0
加载复制器并拍摄内存堆快照。 搜索堆,您会发现4个VueComponents(应用程序,容器,子项,异步子项)
单击销毁按钮。 这将切换v-if,它将删除Child组件,并因此也删除AsyncChild组件。
销毁子组件之后,应销毁该组件及其异步加载的子组件,并释放内存。
Vue坚持使用上下文引用,以防止这些组件被垃圾回收
发生这种情况是由于位于此处的resolve-async-component逻辑: https :
在第64行的forceRender函数中,调用$ forceUpdate之后,应清除contexts数组以释放那些引用,以便以后可以对这些组件进行垃圾回收。
最有用的评论
我也可以为此问题提交PR的修复程序,谢谢