尤大昨天在 Vue Toronto 的主题演讲中预览了 Vue 3 。通过利用现代浏览器支持的新功能,Vue 3 将成为我们已经了解和喜爱的Vue.js 的改进版本。

我们期待的 Vue 3 将会是:

  • 更快

  • 更小

  • 更容易维护

  • 更加友好

  • 更容易使用

当然,这个是每个框架、库的最终目标。

更快

虽然 Vue 已经非常快,但尤大认为 Vue 3 会更快。下面几点将是如何去做的:

1. 虚拟DOM重写

虚拟 DOM 从头开始重写,我们可以期待更多的编译时提示来减少运行时开销。重写将包括更有效的代码来创建虚拟节点。

2. 优化 slots 的生成

目前在 Vue 中,当父组件重新渲染时,其子组件也必须重新渲染。使用Vue 3,可以单独重新渲染父级和子级。

3. 静态树提升(Static Tree Hoisting)

使用静态树提升,这意味着 Vue 3 的编译器将能够检测到什么是静态的,然后将其提升,从而降低了渲染成本。它将能够跳过 patching 整棵树。

4. 静态属性提升
此外,我们可以期待静态属性提升,其中 Vue 3 将跳过不会改变的 patching 节点。

5. 基于 Proxy 的 Observation

目前,Vue 的响应式系统是使用带有 Object.defineProperty 的getter 和 setter。但是,Vue 3 将使用 ES2015 Proxy 作为其观察机制。这消除了以前存在的警告,使速度加倍,并使用了一半的内存。

为了继续支持 IE11,Vue 3 将发布一个支持旧观察机制和新代理版本的构建。

更小

Vue 已经非常小了,在运行时压缩了大约 20kb。但我们可以预期它会变得更加紧凑,对于新的核心运行时而言,为 10kb gzi 压缩。这将在很大程度上通过消除您不使用的库(也称为Tree Shaking)来实现。例如,如果您没有使用过渡元素,则不会包含它。

使其更具可维护性

虽然大多数 Vue 开发人员都没有在库本身上工作,但很高兴知道 Vue 3 将带来更可维护的源代码。它不仅会使用 TypeScript,而且许多包将被解耦,使所有内容更加模块化。

更容易与原生结合

运行时核心也将与平台无关,使得Vue可以更容易地与任何平台(例如Web,iOS或Android)一起使用。

运行时核心也将与平台无关,使得Vue可以更容易地与任何平台(例如Web,iOS或Android)一起使用。

想想 React

让您的生活更轻松

Observer 模块已被解压缩到自己的包中,允许您以新的方式使用它:

跟踪重新渲染的位置也会更容易。在他的演讲中,尤大做了一些实时编码,并展示了如何跟踪 Vue 应用程序(使用下面的代码)来找出触发组件重新渲染的内容。这在更大的应用程序和性能微调中非常有用。

Vue 3.0 还具有改进的 TypeScript 支持,允许在编辑器中进行新级别的类型检查和有用的错误和警告。

1. Hooks API

当我们需要在 Vue 中共享两个组件之间的行为时,我们通常使用Mixins。然而尤大正在尝试使用 Hooks API 来避免来自 Mixins 的一些问题,并且更适合使用惯用的 Vue 代码。

尤大还是快,React 刚出觉得还不错,咱 Vue 也写一个。

2. 时间切片支持

当您有许多组件同时尝试重新渲染时,任何浏览器都可以开始爬行,从而使用户体验变得困难。

尤大展示了他正在尝试使用 Time Slicing,如果要处理用户交互,将 JS 执行分解为可以提供给浏览器的段。

总结

最后说下看法,尤大的愿景很好,基本是就是每个框架、库的愿景,差不多就是奥运精神:更高、更快、更强。

Vue 3.0 的改进,说实话,个人感觉没有太大的创新,很多还是更 React 学的,所以呢,要问我哪个框架更有前景,我还是觉得 React 更有前景,思想超前,每一个重大更新都是激动人心。

但是我没说 Vue 不好,github 上这么多星星也体现了他的价值,就想某宝和 PDD,PDD 上有的某宝也有,为啥很多人还要去 PDD 买呢,因为便宜,所以给消费水平低的这群人带来了很大便利。

解释:我没有说把 PDD 假货的事情拿来做比喻,仅仅是他们的盈利模式,受众人群。

希望各位 Vue 粉加油,学不动也要学,前端就是这样。老子学不动,也要学!

以上分析来自公号:前端桃园

老子学不动系列:Vue 3.0 新特性预览相关推荐

  1. Flink 1.14 新特性预览

    简介: 一文了解 Flink 1.14 版本新特性及最新进展 本文由社区志愿者陈政羽整理,内容源自阿里巴巴技术专家宋辛童 (五藏) 在 8 月 7 日线上 Flink Meetup 分享的<Fl ...

  2. 【Flink】Flink Flink 1.14 新特性预览

    1.概述 转载:Flink 1.14 新特性预览 简介: 一文了解 Flink 1.14 版本新特性及最新进展 本文由社区志愿者陈政羽整理,内容源自阿里巴巴技术专家宋辛童 (五藏) 在 8 月 7 日 ...

  3. Apache Flink Meetup 8.7 深圳站,企业实践 + 1.14 新特性预览

    时隔 10 个月,Apache Flink Meetup 又来到了深圳这个与 Flink 契合度很高的城市.正如改革和创新是深圳的标签,Apache Flink 给技术开发者们带来的,也是摒弃旧的 & ...

  4. 【Vue 3.0 新特性(四)】Vue 3.0 响应式系统原理

    文章前言 笔记来源:拉勾教育 大前端高薪训练营 阅读建议:内容较多,建议通过左侧导航栏进行阅读 Vue 3.0 响应式系统原理 基础回顾 Vue.js 响应式回顾 Proxy 对象实现属性监听 多层属 ...

  5. Vue 3.0 新特性及使用方法

    介绍 2020年9月19日凌晨,尤雨溪大大正式发布了 Vue.js 3.0 版本,代号:One Piece.此框架新的主要版本提供了更好的性能.更小的捆绑包体积.更好的 TypeScript 集成.用 ...

  6. 【Vue 3.0 新特性(一)】源码的组织方式

    文章前言 笔记来源:拉勾教育 大前端高薪训练营 Vue 3.0 源码的组织方式 一.源码采用 TypeScript 重写 为了提升代码的可维护性,源码都使用 TypeScript 编写,大型项目项目的 ...

  7. Silverlight 5 Beta 新特性预览

    MIX11大会昨天刚刚结束.第二天核心Session包含三个部分:Windows phone 7/Silverlight 5 Beta/Kinect for Windows SDK.在整个全程直播中. ...

  8. php7 str split,PHP7.4新特性预览

    虽然PHP 7.4还未发布,但是RFC已经确定了该版本的一些新性.这个版本的改动有点多,有很多实用性功能.发布日期可能在2019年12月左右,但尚待确认.让我们看看有那些地方的改动. 短闭包 RFC ...

  9. python新特性_Python3.6正式版新特性预览

    按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...

最新文章

  1. 吴文俊AI最高成就奖颁给清华张钹院士,之前曾空缺七年
  2. [Python] Window机器上同时安装Python 2 和 Python 3,如何兼容切换使用?
  3. Paxos一致性协议
  4. LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)
  5. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 27丨每次访问的交易次数【难度困难-提前放出来】​
  6. 智慧水务建设纪实:数字可视化大屏+智能AI,凭啥这么强?
  7. Python笔记-安装python虚拟环境及配置opencv及通过opencv识别颜色
  8. 深入探究ConvNets vs. Transformers,哪种预训练模型的可迁移性更好?
  9. 刚在乌镇夺魁的飞桨,又将在“WAVE SUMMIT+”深度学习开发者峰会带来哪些惊喜?...
  10. 组合逻辑与时序逻辑的区别
  11. 局域网传文件_秒杀QQ微信,这3个神器传输文件快10倍
  12. 2021-05-21 Matlab实现快速傅里叶逆变换
  13. 一对一高清直播系统解决方案
  14. 【汇编】intel core cpu中常用的寄存器
  15. 祝女生节快乐的c语言,女生节给女生的祝福语大全
  16. 小米5之Root攻略
  17. Dcloud云函数服务空间
  18. 用单片机控制PH8810和无线收发模块实现远程控制家电
  19. 浪子换钱系统 更新版源码
  20. 一个极简、高效的秒杀系统-战略设计篇

热门文章

  1. 中国连锁餐饮企业的资本之路
  2. 大数据时代:数据保护与流动规则
  3. 作者:胡青青(1984-),女,就职于中国人民银行征信中心数据部
  4. 《大数据》第1期“动态”——站在大数据的风口上
  5. 数据库系统实训——实验三——子查询与组合查询
  6. 【离散数学】极小全功能集
  7. 【C语言】第三章 基本运算与顺序结构 题解
  8. 笨小猴(洛谷P1125题题解,Java语言描述)
  9. 移动石头游戏中的博弈问题(洛谷P4136题题解,Java语言描述)
  10. 【VB.NET】VB.NET基本语法常见问题的解答