将 Vue 2 迁移到 Vue 3,typeError: Vue is not a constructor
Posted
技术标签:
【中文标题】将 Vue 2 迁移到 Vue 3,typeError: Vue is not a constructor【英文标题】:Migrating Vue 2 to Vue 3, typeError: Vue is not a constructor 【发布时间】:2021-03-13 21:37:40 【问题描述】:如何将我的 Vue 2 语法迁移到 Vue 3,因为我收到以下错误:
TypeError: Vue 不是构造函数。
现在我正在使用 Vue 3:
let app;
firebase.auth().onAuthStateChanged(user =>
console.log("user", user);
if (!app)
app = new Vue(
router,
store,
render: h => h(App)
).$mount("#app");
);
到
import createApp from "vue";
const app = createApp(
);
app.mount("#app");
【问题讨论】:
【参考方案1】:您在 Vue 3、Vuex 4、Vue Router 4 中的代码相当于:
import createApp from 'vue'
import store from './store'
import router from './router'
import App from './App.vue'
let app;
firebase.auth().onAuthStateChanged(user =>
console.log("user", user);
app = createApp(App);
app.use(store);
app.use(router);
app.mount("#app");
);
store.js中的store语法略有不同:
import createStore from 'vuex'
// now uses `createStore`
export default createStore(
state: ,
getters: ,
mutations: ,
actions:
)
router.js中的路由器:
import createWebHistory, createRouter from "vue-router";
import Home from "@/views/Home.vue";
import About from "@/views/About.vue";
const routes = [
path: "/",
name: "Home",
component: Home,
,
path: "/about",
name: "About",
component: About,
,
];
const router = createRouter(
history: createWebHistory(),
routes,
);
export default router;
【讨论】:
以上是关于将 Vue 2 迁移到 Vue 3,typeError: Vue is not a constructor的主要内容,如果未能解决你的问题,请参考以下文章
Vue CLI 生成带有错误的空正文:找不到元素:迁移 vuecli 2>3 后的#app
从 Vue CLI(Vue 3)迁移到 Vite:未捕获(承诺中)类型错误:无法解构“未定义”的属性“默认”,因为它未定义