Vue.js 移除组件的最佳实践

clo*_*986 5 vue.js

我的网站会覆盖特定的 DOM,而不是要求加载页面。有时,DOM 内部会有一些 Vue.js 组件(都是单页组件),这些组件会被覆盖。它们中的大多数驻留在仅为构建组件而创建的应用程序中。

两个问题:

  1. 我需要销毁这些组件吗?如果是:如何?

  2. 这种方法有没有更好的解决方案?

Rei*_*ner 8

有一个销毁命令来擦除组件:

彻底摧毁一个虚拟机。清理它与其他现有虚拟机的连接,解除其所有指令的绑定,关闭所有事件侦听器。触发beforeDestroy 和destroyed 钩子。

https://vuejs.org/v2/api/#vm-destroy

但是,如果您只想删除/隐藏一个或多个实例(即通过.$mount()或安装的那些)内的组件,el: "#app"您应该尝试通过v-if或 隐藏通过删除组件v-show

在实例模板中,这将如下所示:

<my-component v-if="showMyComponent"></my-component>
<my-component v-show="showMyComponent"></my-component>
Run Code Online (Sandbox Code Playgroud)

v-show 将只是设置display:nonewhilev-if会以与 DOM 相同的方式从 DOM 中删除组件$destroy()https://vuejs.org/v2/guide/conditional.html#v-if-vs-v-show