Vue3+TypeScript

本文详细阐述了Vue3带来的变化,包括源码管理的monorepo策略,TypeScript的使用提升,使用Proxy改进数据劫持,从OptionsAPI到CompositionAPI的API结构优化,以及安装和使用Vue的不同方法,特别是CDN引入的便捷性。
摘要由CSDN通过智能技术生成

一、Vue3带来的变化(源码)

源码通过monorepo的形式来管理源代码
口Mono:单个
口Repo : repository仓库
口主要是将许多项目的代码存储在同一个repository中;
口这样做的目的是多个包本身相互独立,可以有自己的功能逻辑、单元测试等,同时又在同一个仓库下方便管理口而且模块划分的更加清晰,可维护性、可扩展性更强

源码使用TypeScript来进行重写:
口在Vue2.x的时候,Vue使用Flow来进行类型检测

口在Vue3x的时候,Vue的源码全部使用TypeScript来进行重构,并且Vue本身对TypeScript支持也更好了;

二、Vue3带来的变化(性能)

使用Proxy进行数据劫持
口在Vue2.x的时候,Vue2是使用Object.defineProperty来劫持数据的getter和setter方法的;

口这种方式一致存在一个缺陷就是当给对象添加或者删除属性时,是无法劫持和监听的
口所以在Vue2x的时候,不得不提供一些特殊的API,比如$set或$delete,事实上都是一些hack方法,也增加了开发者学习新的API的成本;
口而在Vue3.x开始,Vue使用Proxy来实现数据的劫持,这个API的用法和相关的原理我也会在后续讲到;删除了一些不必要的API:
口移除了实例上的$on,$off 和 $once ;
口移除了一些特性:如filter、内联模板等;
包括编译方面的优化:
口生成Block Tree、Slot编译优化、diff算法优化

三、Vue3带来的变化(新的API)

由Options API到 Composition API :
口在Vue2.x的时候,我们会通过Options API来描述组件对象;
口Options API包括data、props、methods、computed、生命周期等等这些选项;
口存在比较大的问题是多个逻辑可能是在不同的地方:

√比如created中会使用某一个method来修改data的数据,代码的内聚性非常差;

口Composition API可以将 相关联的代码 放到同一处进行处理,而不需要在多个Options之间寻找Hooks函数增加代码的复用性:
口在Vue2.x的时候,我们通常通过mixins在多个组件之间共享逻辑;
口但是有一个很大的缺陷就是 mixins也是由一大堆的Options组成的,并目多个mixins会存在命名冲突的问题

口在Vue3.x中,我们可以通过Hook函数,来将一部分独立的逻辑抽取出去,并且它们还可以做到是响应式的;

四、安装和使用Vue这个JavaScript库有哪些方式呢?

1.CDN引入

什么是CDN呢?CDN称之为内容分发网络(Content Delivery Network或Content Distribution Network,缩写:CDN)
口它是指通过 相互连接的网络系统,利用最靠近每个用户的服务器
口更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户口来提供高性能、可扩展性及低成本的网络内容传递给用户
常用的CDN服务器可以大致分为两种
CDN
口自己的CDN服务器:需要购买自己的CDN服务器,目前阿里腾讯、亚马逊、Google等都可以购买CDN服务器口开源的CDN服务器:国际上使用比较多的是unpkgJSDelivr、cdnjs ;

Vue的CDN引入:
<script src="https://unpkg.com/vue@next"></script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值