2.6.10
https://codepen.io/aaronbird/pen/JVRKwa
Saya menulis demo:
<!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>
Proses debugging adalah sebagai berikut:
1 Klik "Kumpulkan sampah" dan "Ambil cuplikan tumpukan" (cuplikan 1)
2 Klik tombol perutean di sebelah kiri 10 kali, lalu klik "Kumpulkan sampah" dan "Ambil cuplikan tumpukan" (cuplikan 2)
3 Klik tombol perutean di sebelah kiri 10 kali, lalu klik "Kumpulkan sampah" dan "Ambil cuplikan tumpukan" (cuplikan 3)
"Snapshot" yang dihasilkan adalah sebagai berikut:
snapshot 1:
snapshot 2:
snapshot 3:
Setelah mengklik 100 kali:
VueComponent tidak didaur ulang, apakah ini bug?
Mengapa ini terjadi, apakah ini bug?
Komponen tidak akan dihapus saat mengganti komponen.
Saya akan melihat ini.
Semua komponen disimpan oleh induk vnode yang di-cache, jika kita menghapus induk. kemudian komponen didaur ulang. Akan menggali lebih banyak
Saya juga mengalami masalah kebocoran memori, silakan lihat: https://github.com/bootstrap-vue/bootstrap-vue/issues/4214
Saya mencoba membuat jsfiddle tetapi tidak yakin bagaimana cara meniru perilaku caching.
Hei, apa ada kabar terbaru? apakah pembaruan ini sudah digabungkan ke cabang master? Saya memiliki masalah yang sama.
Saya sangat ingin melihat pembaruan apa pun tentang masalah ini - ada PR tetapi tampaknya sudah mati?
Komentar yang paling membantu
Saya sangat ingin melihat pembaruan apa pun tentang masalah ini - ada PR tetapi tampaknya sudah mati?