一张图了解vue3.0优化点

本文探讨了Vue3.0的主要优化点,包括源码体积优化的tree-shaking,数据劫持从`Object.defineProperty`到`Proxy`的改进,编译优化提升更新性能,以及逻辑复用的Composition API的引入,旨在提供更好的开发体验和性能。
摘要由CSDN通过智能技术生成

一张图了解vue3.0优化点

vue3.0发布已经有一段时间了,那么你现在对它的了解有多少呢?

激动又忐忑的你是不是在各大网站上看到各种关于vue3.0的介绍分析呢?

“vue2.0我还一知半解,what? 3.0都有了?”

👌我已经get到大家强烈的求知欲,结合尤大大的各种分享以及各位前辈们的分析总结,我会输出vue3.0相关文档~

首先我们来简单了解下vue的发展史:Vue.js 从 1.x 到 2.0 版本,最大的升级就是引入了虚拟 DOM 的概念,它为后续做服务端渲染以及跨端框架 Weex 提供了基础。

Vue.js 2.x 发展了很久,生态已经非常完善了,而且对于 Vue.js 用户而言,它几乎满足了我们日常开发的所有需求。在我们看来 Vue.js 2.x 已经足够优秀,但是在 Vue.js 作者眼中它还不够完美。在迭代 2.x 版本的过程中,尤大大发现了很多需要解决的痛点,比如源码自身的维护性,数据量大后带来的渲染和更新的性能问题,一些想舍弃但为了兼容一直保留的鸡肋 API 等;另外,尤大大还希望能给开发人员带来更好的编程体验,比如更好的 TypeScript 支持、更好的逻辑复用实践等。 那么接下来,我们就一起来看一下 Vue.js 3.0 具体做了哪些优化。

为了大家能够更直观的了解vue3.0的具体优化点,特制导图一份,后面也会针对部分内容进行demo讲解。

在这里插入图片描述

性能优化(源码体积优化之tree-shaking):

举个例子,一个 math 模块定义了 2 个方法 square(x) 和 cube(x) :

export function square(x) {
   
  return x * x
}
export function cube(x) {
   
  return x * x * x
}

我们在这个模块外面只引入了 plus 方法:

import {
    cube } from './math.js'
// do something with cube

最终 math 模块会被 webpack 打包生成如下代码:

/***/ (function(module, __webpack_exports__, __webpack_require__) {
   
  'use strict';
  /* unused harmony export square */
  /* harmony export (immutable) */ __webpack_exports__['a'] = cube;
  function square(x) {
   
    return x * x;
  }
  function plus(x) {
       return x * x * x;
  }
});

性能优化(数据劫持优化):

Vue.js 1.x 和 Vue.js 2.x 内部都是通过 Object.defineProperty 这个 API 去劫持数据的 getter 和 setter,具体是这样的:

Object
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值