首页 > 解决方案 > 在删除包含 vue 根元素的父 dom 元素之前,是否必须卸载 Vue.js 3 应用程序?

问题描述

TL;DR:您能否简单地删除包含 Vue 应用程序的子元素的 DOM 元素,并且在 SPA 中多次执行此操作没有内存问题。或者是否有一个特殊的卸载过程要遵循。

所以这个场景是一个 jQuery & Backbone 应用程序被迁移到 Vue 3。加载页面/视图由应用程序 JS 控制,Vue 组件由 JS 使用 createApp() 手动加载。

当视图发生变化时,Vue 根元素上方的父 dom 元素会使用 jQuery 删除。

在这种情况下,您是否需要考虑将 vue dom 元素从 DOM 中移除的问题?我们应该在删除父 dom 之前卸载 Vue 应用程序吗?是否需要考虑内存泄漏?

我目前尝试过:

vue_app_instance.unmount()

但由于某种原因,Vue Chrome 扩展程序会出现大量错误:

未捕获(承诺中)错误:在 backend.js:811 处获取应用程序 [object Object] 的应用程序记录超时

但是如果我让 jQuery 删除页面并允许 Vue 在用户导航到的新页面上挂载一个新的“应用程序”,该应用程序可以正常工作并且没有错误。

标签: javascriptvue.jsvuejs3

解决方案


推荐阅读