VueJS 2迁移VueJS 3遇GLOBAL_MOUNT废弃警告,按文档操作仍未解决
Vue3 全局挂载弃用警告未解决问题
错误提示
[Vue warn]: (deprecation GLOBAL_MOUNT) 全局应用启动API已变更:vm.$mount() 和 "el" 选项已被移除,请改用 createApp(RootComponent).mount()。
我已按照官方文档修改代码,但该警告仍未消失。
当前main.js代码
import { defineComponent } from 'vue'; import Vue, { createApp } from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; import moment from 'moment'; const AppComponent = defineComponent({ components: { App }, setup () { moment.locale('en'); }, }); createApp(AppComponent) .use(store) .use(router) .mount("#app");
问题修复方案
问题根源
- 导入了Vue3中已废弃的全局
Vue对象,这会触发旧API的兼容检测,导致警告弹出。Vue3的新API完全不需要导入这个全局对象。 - 不必要地用
defineComponent包裹根组件App,多此一举的同时可能引发不必要的组件层级问题。
修改后的代码
import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; import moment from 'moment'; // 直接设置moment语言环境,无需额外组件 moment.locale('en'); createApp(App) .use(store) .use(router) .mount("#app");
内容的提问来源于stack exchange,提问作者Augusto
相关产品推荐
相关产品推荐

