vue3.0抢先看(附尤雨溪vue分享ppt)

点击上方“前端小苑”,选择“置顶公众号”

精品技术文章,热门资讯第一时间送达

昨天尤大在深圳的一次vue分享中,介绍了vue3.0的新特性和主要改动点,文章底部会给出分享的完整ppt。

下面我们看一下vue3.0都有哪些重要更新。

vue3.0的目标如下:

  1. 更小

  2. 更快

  3. 加强 API 设计一致性

  4. 加强 TypeScript 支持

  5. 提高自身可维护性

  6. 开放更多底层功能

更小


vue3.0提供了全局 API 和内置组件,支持 tree-shaking功能,3.0的常驻的代码尺寸控制在 10kb (gzipped) 上下 

更快


数据监测将基于Proxy

3.0的数据监测将基于Proxy,这样性能整体优于object.defineProperty 的 getter / setter。

长远来看,JS 引擎会继续优化 Proxy,但 getter / setter 基本不会再有针对性的优化。

Virtual DOM 重构

重构后的vdom在更新速度和内存占用均会有质的提升

使用传统的vdom,虽然 Vue 能够保证触发更新的组件最小化,但在单个组件内 部依然需要遍历该组件的整个 vdom 树。在一些组件整个模版内只有少量动态节点的情况下,这些遍历都是性能的浪费,传统 vdom 的性能跟模版大小正相关,跟动态节点的数量无关。

vue3.0通过动静结合突破vdom的性能瓶颈。通过模版静态分析生成更优化的 vdom 渲染函数,将模版切分为 block(if, for, slot),每个 block 内部动态节点 位置是固定的,每个 block 的根节点会记录自己所包含的动态节点(包含子 block 的根节点),更新时只需要直接遍历动态节点。
新策略将 vdom 更新性能与模版大小解耦,变为与动态节点的数量相关,整体比 Vue 2 性能提升 2~5 倍。

提高自身可维护性


  • 代码采用 monorepo 结构,内部分层更清晰

  • TypeScript 使得外部贡献者更有信心做改动

vue3.0本身用TypeScript重写,内置 typing TSX支持,不会影响不使用 TS 的用户

开放更多底层功能


Custom Renderer


import { createRenderer } from '@vue/runtime-core'        const { render } = createRenderer({        nodeOps,patchData})

Function-based API


vue3.0已撤销Class API 提案,将提供Function-based API

const App = { setup() { // dataconst count = value(0)// computedconst plusOne = computed(() => count.value + 1) // methodconst increment = () => { count.value++ }// watchwatch(() => count.value * 2, v => console.log(v)) // lifecycleonMounted(() => console.log('mounted!'))// 暴露给模版或渲染函数return { count }}}

对比 Class API,Function-based API有如下优点:

  1. 更灵活的逻辑复用能力

  2. 更好的 TypeScript 类型推导支持

  3. 更好的性能

  4. Tree-shaking 友好

  5. 代码更容易被压缩

与 React Hooks 相比,Function-based API具有同样的逻辑复用能力,只需要调用一次,不会存在闭包变量的问题,并且没有内存/GC 压力,不存在内联回调导致子组件永远更新的问题。

逻辑复用方案对比:

Mixin

  • 混入的属性来源不清晰

  • 命名空间冲突

高阶组件 (HOC)

  • Props 来源不清晰

  • Props 命名空间冲突

  • 多余的组件实例造成的性能浪费

Scoped Slots

  • 来源清晰

  • 无命名空 间冲突

  • 多余的组件实例造成性能的浪费


以上内容整理自尤大分享的ppt

获取尤大的完整版分享ppt,请在公众号后台回复  vue3.0 



点击“阅读原文”,查看更多精品文章

点一下你会更好看耶

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值