gpt4 book ai didi

javascript - Vue,我在一个组件上使用了 $mount() ,有没有办法给 $unmount() 一个引用?

转载 作者:行者123 更新时间:2023-11-29 22:59:14 26 4
gpt4 key购买 nike

我意识到这不是框架最初打算使用的方式。我想做的是以编程方式将组件安装到页面,然后以编程方式卸载它。

const Component = Vue.extend({
template: '<div>This works</div>'
})
const c = new Component()
c.$mount()
document.getElementById('app').appendChild(c.$el)

我想从这里开始清理组件

c.$unmount()
c.$destroy()

有没有这样的东西可以删除监听器并执行完全清理?

或者我可以简单地执行以下操作而不产生任何后果吗

document.getElementById('#app').innerHTML = ''

最佳答案

您可以在新的 DOM 元素上调用 $mount,将 component.$el 附加到 #app 并在 之后删除它$销毁

const component = new Vue({
data() {
return {
message: "Hello"
}
},
template: "<p>{{message}}<p>",
});

const app = document.getElementById("app");

// Mounting on a empty div created programatically
component.$mount(document.createElement("div"));
app.appendChild(component.$el);

setInterval(() => component.message = "Hello " + Date.now(), 100);

setTimeout(() => {
// destroying the component and removing it from DOM
component.$destroy();
app.removeChild(component.$el);
}, 2000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>

<div id="app"></div>

关于javascript - Vue,我在一个组件上使用了 $mount() ,有没有办法给 $unmount() 一个引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55968923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com