2.6.10
https://codepen.io/aaronbird/pen/JVRKwa
Escribí una demostración:
<!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>
El proceso de depuración es el siguiente:
1 Haga clic en "Recoger basura" y "Tomar instantánea de montón" (instantánea 1)
2 Haga clic en el botón de enrutamiento a la izquierda 10 veces, luego haga clic en "Recoger basura" y "Tomar instantánea del montón" (instantánea 2)
3 Haga clic en el botón de enrutamiento a la izquierda 10 veces, luego haga clic en "Recoger basura" y "Tomar instantánea del montón" (instantánea 3)
La "instantánea" generada es la siguiente:
instantánea 1:
instantánea 2:
instantánea 3:
Después de hacer clic 100 veces:
VueComponent no se está reciclando, ¿es esto un error?
¿Por qué sucede esto? ¿Es un error?
El componente no se borrará al cambiar de componente.
Echaré un vistazo a esto.
Todos los componentes son retenidos por el padre de vnode en caché, si eliminamos el padre. luego los componentes se reciclan.
También tengo un problema de pérdida de memoria, consulte: https://github.com/bootstrap-vue/bootstrap-vue/issues/4214
Traté de hacer un jsfiddle pero no estoy seguro de cómo replicar el comportamiento de almacenamiento en caché.
Oye, ¿hay alguna noticia? ¿Estas actualizaciones ya están fusionadas con la rama maestra? Tengo el mismo problema.
Realmente me encantaría ver alguna actualización sobre este tema: ¿hay relaciones públicas pero parece muerto?
Comentario más útil
Realmente me encantaría ver alguna actualización sobre este tema: ¿hay relaciones públicas pero parece muerto?