Vue3的createApp到底是什么?怎么用?和new Vue差在哪?
经常有人刚接触Vue3或者从Vue2转过来的时候,看到main.js里原来的new Vue变成了createApp,第一反应是懵的:这不就是个换名函数吗?为啥要改?其实根本不是换个名字那么简单,createApp是Vue3核心架构升级后的入口设计,从根源上优化了很多Vue2的痛点,还新增了一堆实用能力,今天咱们就把它掰开揉碎讲清楚,不管是新手入门还是老手补坑,看完肯定能明白。
什么是Vue3的createApp?
先从最基础的定义说起,createApp是Vue3暴露出来的全局入口函数,作用就是创建一个独立的Vue应用实例,注意关键词——“独立”,这是它和Vue2入口最本质的区别。
以前用Vue2的时候,不管是单页面还是想在页面里挂多个小模块,new出来的都是同一个根实例的副本吗?不,不对,其实Vue2里new Vue出来的每个都是独立根实例,但全局的API、组件、指令都是共享的,比如你在一个Vue2项目里,给根实例A配置了全局组件MyButton,那根实例B里也能直接用,甚至卸载了A,MyButton还在,除非手动Vue.component删掉,这在做微前端、或者同一个页面嵌入多个独立Vue小工具的时候特别麻烦,很容易出现全局污染。
Vue3的createApp就彻底解决了这个问题,每次调用createApp,都会生成一个全新的、完全隔离的应用上下文,你在这个应用里注册的组件、指令、插件、全局变量,只会在它挂载的DOM范围内生效,卸载应用的时候,这些全局资源也会跟着自动清理,安全多了。
createApp的基本使用步骤
知道了它的定义,接下来看怎么用,其实整个流程很清晰,新手跟着敲一遍就能上手。
第一步:从vue包中导入createApp
这个不用多说,不管是用CDN还是构建工具,第一步都是把createApp引进来。
- 用CDN的话,直接用
code前端网