Vue 3.0 将正式发布,对我们有哪些 改变 ?

众所周知,vue3.0在去年开放了源码,并且今年将发出真正的可用于开发的版本。

那么我们今天就带着大家了解下 vue3.0,到底进化了什么,会对我们的开发有什么影响?

自身性能的变动

一、更快

带来更快的改动主要有两方面

1、vue3重新审视了 vdom,更改了自身对于 vdom的对比算法。vdom从之前的每次更新,都进行一次完整遍历对比,改为了切分区块树,来进行动态内容更新。也就是只更新 vdom的绑定了动态数据的部分,把速度提高了6倍;
2、 把 definePerproty改为了 proxy,对于 JavaScript引擎更加友好,响应更加高效。

二、更小

之前 vue的代码,只有一个 vue对象进来,所有的东西都在 vue上,这样的话其实所有你没用到的东西也没有办法扔掉,因为它们全都已经被添加到 vue这个全局对象上了。

vue3的话,一些不是每个应用都需要的功能,我们就做成了按需引入。用 ES module imports按需引入,举例来说,内置组件像 keep-alive、transition,指令的配合的运行时比如 v-model、v-for、帮助函数,各种工具函数。比如 async component、使用 mixins、或者是 memoize都可以做成按需引入。

写法上将发生的变动

一、加强了 typescript的支持,虽然我们在 vue2已经可以使用 typescript了,但是在 vue3中,进一步加强了对 typescript的支持,很可能以后你就需要用 typescript来写 vue了;

二、改为使用函数式写法,如果你使用 Function-based API,那如下图所示:

我们可以看到,这里面的变化在于 watch、mounted等等生命周期,从属性变成了方法。除此之外我们可以直接把 watch、onMounted等作为了一个方法从 vue中拿出,如下面代码:

开发这样的做法好处之一,就是让我们可以更好地进行 tree-shaking,从侧面上帮助了我们更小的目标。

总结

我们都期待着Vue 3.0的正式发布,同时,我们也要保持学习的状态,来体验发布带来的好处。

学如逆水行舟,不进则退
发布了547 篇原创文章 · 获赞 1555 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/weixin_42429718/article/details/104475968