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://github.com/bootstrap-vue/bootstrap-vue/issues/4214
حاولت إنشاء jsfiddle ولكني لست متأكدًا من كيفية تكرار سلوك التخزين المؤقت.
مرحبًا ، هل هناك أي أخبار؟ هل تم دمج هذه التحديثات بالفعل في الفرع الرئيسي؟ لدي نفس المشكلة.
أرغب حقًا في رؤية أي تحديث حول هذه المشكلة - هناك علاقات عامة ولكن يبدو أنها ميتة؟
التعليق الأكثر فائدة
أرغب حقًا في رؤية أي تحديث حول هذه المشكلة - هناك علاقات عامة ولكن يبدو أنها ميتة؟