Vue3+TS+vite学习笔记(持续更新 一起学习)

Vue3+TS+vite学习笔记(持续更新 一起学习)

vue3的新特性

  • 重写双向数据绑定
  • VDOM性能瓶颈
  • Fragments
  • Tree-shaking
  • Composition API
重写双向数据绑定
vue2
基于Ojbect.defineProperty() 做属性的劫持

vue3
基于Proxy

对比
// 丢掉麻烦的数据备份
// 省去for in 循环
// 可以监听数组变化
// 代码更简化
// 可以监听动态新增的属性
// 可以监听删除的属性
// 可以监听数组的索引和 length 属性
优化Vdom

在vue中,每次更新diff,都是全量对比,vue3则只对比带有标记的,这样减少了非动态内容的对比消耗
patch flag
动态标记 动态的值 只对标记的 text 进行对比 减少了性能优化

Fragments
<template>
  <div>12</div>
  <div>23</div>
</template>

支持render JSX 写法
render() {
	  return (
	         <>
	             {this.visable ? (
	                 <div>{this.obj.name}</div>
	             ) : (
	                 <div>{this.obj.price}</div>
	             )}
	             <input v-model={this.val}></input>
	             {[1, 2, 3].map((v) => {
	                return <div>{v}-----</div>;
	             })}
	         </>
	     );
	 },
 
Tree shaking

简单来讲,就是在保持代码运行结果不变的前提下,去除无用的代码
在Vue2中,无论我们使用什么功能,它们最终都会出现在生产代码中。主要原因是Vue实例在项目中是单例的,捆绑程序无法检测到该对象的哪些属性在代码中被使用到
而Vue3源码引入tree shaking特性,将全局 API 进行分块。如果你不使用其某些功能,它们将不会包含在你的基础包中
就是比如你要用watch 就是import {watch} from ‘vue’ 其他的computed 没用到就不会给你打包减少体积

Composition API

Setup 函数式编程 也叫 vue Hook

  • vue2:使用 Options API 整体逻辑比较分散 可读性差 可维护性差
  • vue3:使用 Composition API 逻辑分明
    可维护性高

虚拟DOM

虚拟DOM就是通过JS来生成一个AST节点树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值