2.6.10
https://codepen.io/aaronbird/pen/JVRKwa
我写了一个演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>demo</title>
<style>
.link {
cursor: pointer;
user-select: none;
}
</style>
</head>
<body>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<transition>
<keep-alive include="foo">
<component :is="target" @change="onChange"></component>
</keep-alive>
</transition>
</div>
<script>
const Foo = {
name: "foo",
template: `<div class="link" @click="$emit('change', 'bar')">Go to Bar</div>`
};
const Bar = {
name: "bar",
template: `<div class="link" @click="$emit('change', 'foo')">Go to Foo</div>`
};
Vue.component("foo", Foo);
Vue.component("bar", Bar);
const app = new Vue({
data: {
target: "foo"
},
methods: {
onChange(target) {
this.target = target;
}
}
}).$mount("#app");
</script>
</body>
</html>
调试过程如下:
1单击“收集垃圾”和“获取堆快照”(快照1)
2单击左侧的路由按钮10次,然后单击“收集垃圾”和“获取堆快照”(快照2)
3单击左侧的路由按钮10次,然后单击“收集垃圾”和“获取堆快照”(快照3)
生成的“快照”如下:
快照1:
快照2:
快照3:
单击100次后:
VueComponent不被回收,这是一个错误吗?
为什么会这样,这是一个错误吗?
切换组件时不会清除组件。
我会看一看。
如果删除父节点,则所有组件均由缓存的vnode的父节点保留。 然后将组件回收。将进一步挖掘
我也有内存泄漏问题,请参阅: https :
我试图做一个jsfiddle,但不确定如何复制缓存行为。
嘿,有什么消息吗? 此更新是否已合并到master分支? 我也有同样的问题。
我真的很乐意看到有关此问题的任何更新-有PR,但它似乎已经死了?
最有用的评论
我真的很乐意看到有关此问题的任何更新-有PR,但它似乎已经死了?