初始化
在vue3中,程序的初始化不再沿用vue2的new Vue()方法,而是使用了createApp。在createApp中发生了什么呢?
改写的原因
createApp是一个Vue中的工厂函数,以函数的方式进行导入和调用。而函数式的好处是
1、消灭了原来挂载在Vue上的静态方法,变成实例方法,可以减少内存占用,便于tree-shaking,减小了打包体积;
2、因为函数式和class装饰器对ts的支持好,使用函数的方式调用,可以更好的支持ts,提高类型支持
3、根组件的api,如data要和子组件的api保持相同的格式,挂载从$mount改为mount,简化了api并统一了api的一致性
4、new Vue中挂载的方法会造成全局污染,不能独立出来,createApp可以相互独立,并按需挂载。
流程实现
mount
const Vue = {
createApp(options) {
//返回app实例
return {
mount(selector