vue2中有很多全局的api可以改变vue的行为,比如Vue.component
等,这导致一些问题:
- vue2中没有app概念,new Vue()得到的根实例被作为app,这样的话所有创建的根实例时共享相同的全局配置,这在测试时会污染其他测试用例,导致测试变得困难。
- 全局配置也导致没有办法在单页面创建不同全局配置的多个app实例
vue3中使用createApp返回app实例,由他暴露一系列全局api
import {createApp, h} from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
createApp(App)
.use(store)
.use(router)
.component("comp", {
render() {
return h("div", "comp组件");
},
})
.mount("#app");
看一下vue2.0和vue3.0的全局api的对比
image.png