Skip to content

new Vue和createApp对比

Vu2

js
Vue.component('button-counter', {})
Vue.directive('focus', {})

Vue.mixin({
  /* ... */
})
const app1 = new Vue({ el: '#app-1' })
const app2 = new Vue({ el: '#app-2' })

在vue2中,所有的vue实例是共享一个Vue构造函数对象的(包括全局指令/全局组件等),无法做到完全隔离,所以如果挂载全局指令或者全局组件, 所有的vue实例都会拥有

vue3

js
import { createApp } from 'vue'
const app = createApp({})

在vue3中,使用createApp构建独立的实例,每个实例上挂载的全局指令和组件只能给该实例使用

备注

vue3的createApp,在小项目时看不出与new Vue相比有什么优势,但当项目逐渐变大,由多个团队独立开发(即微服务)时,就能提现出createApp的优势

不同的子项目,挂载不同的指令、组件等,互不影响

如有转载或 CV 的请标注本站原文地址