转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

原文出处:https://blog.bitsrc.io/vuejs-3-0-0-beta-features-im-excited-about-c70b82fac163

路漫漫其修远兮,吾将上下而求索。——献给所有为 Vue的发展而默默付出的开发者们。

(图片来源于网络)

前几天,Vue正式进入了beta阶段,作为一个日渐流行的JavaScript库,Vue.js由Evan You和Vue社区的284多名成员创建。如今,它已拥有超过120万用户,并成为用来解决大型单页web应用程序的有效手段。

(图片来源于网络)

在撰写本文时,Vue.js 3.0.0已经对外发布了Beta版,其中最重要的变化是受React Hooks的启发,在新的API中允许使用基于函数的方式编写组件。

(图片来源于网络)

以下是Vue.js 3.0.0 中的新功能:

  • 允许使用基于函数的方式编写组件
  • 虚拟DOM重写可提高性能并改善TypeScript支持
  • 原生门户
  • Fragments 片段(不会在DOM树中渲染的虚拟元素)
  • 全局mounting
  • 有条件地暂停组件渲染

我们将从性能、代码优化(Tree-shaking)、函数式API(Composition API)等方面,盘点 Vue.js 3.0.0 中那些让人激动的功能。

性能

Vue.js的发展,向来都是以提高开发与构建的速度为驱动,对比3.0和此前的Vue版本,这一点尤为明显。由于虚拟DOM已被完全重写,因此这个新版本将比以往更快。

对于服务器端渲染,Vue.js 3.0.0的性能提高了2倍,速度提高了3倍。同时,组件的初始化现在也更加高效,甚至具有了编译器通知的快速执行路径。

代码优化(Tree-shaking)

在Vue.js 3.0.0中,提供了“摇树”支持,即通过"摇"我们的JS文件,将其中用不到的代码"摇"掉。

(图片来源于网络)

具体来说,在 webpack 项目中,有一个入口文件,相当于一棵树的主干,入口文件有很多依赖的模块,相当于树枝。在实际情况中,虽然依赖了某个模块,但其实只使用其中的某些功能。通过 tree-shaking,便可将没有使用的模块摇掉,这样来达到代码优化的目的。

现在,Vue中可选的大多数功能都支持“摇树”,例如过渡和v模型。这极大地减小了Vue应用程序的大小,例如一个标准HelloWorld系统现在的文件大小仅为13.5kb(通过使用composition API,它的大小甚至可以降到11.75kb)。

“摇树”的出现,允许一个包括了所有运行时功能的项目大小可缩至22.5kb。这意味着即使增加了更多功能,Vue 3.0.0仍然比任何2.x版本都轻盈。

Composition API

Composition API 是一种全新的逻辑重用和代码组织方法。

Vue团队主要对当前的Composition API进行了添加和改进,而不是进行重大更新,这让已经熟悉了Vue2语法的人可以更容易上手。

此前,我们经常使用“options”API (如data、methods、computed等属性)来构建组件,目的就是为了将逻辑添加到Vue组件中。这种方法最大的缺点是:它本身并不是一个标准的JavaScript代码。因此,您需要确切地知道模板中可以访问哪些属性以及this关键字的行为。在底层,Vue编译器需要将此属性转换为标准代码。正因为如此,我们无法从自动建议或类型检查中获益。

所以,Vue团队推出了composition API来解决这些问题,它具备了在Vue组件中使用和重用纯JS函数的灵活性和自由度。

composition API如下所示:

<script>
export default {
setup() {
return {
average(), range(), median()
}
}
} function average() { }
function range() { }
function median() { }
</script>

使用composition API并不意味着不能使用“options”API。相反,我们可以将 composition API与options API一起使用。(就像在React的钩子中那样)

Fragments

Vue JS将在 3.0.0版本中引入类似React Fragments的功能,该功能的主要需求是因为在之前的版本中Vue模板只能拥有一个根节点,因此,当创建类似像下面这样的组件时,将返回错误:

<template>
<div>Root1</div>
<div>Root2</div>
</template>

任何Vue组件都需要绑定在单个根节点中,在3.0中将内置允许模板组件拥有多个根节点功能,这一点和React的功能类似。

Teleport

Teleport(以前称为Portal)是将子节点渲染到DOM谱系之外的DOM节点中的安全通道,例如弹出窗口甚至是模式。在此之前,使用CSS通常会遇到很多麻烦,现在Vue允许您使用<Teleport>在模板部分中进行处理。我相信Teleport受到React门户的启发,并将随Vue JS的3.0.0版本一起提供。

Suspense

Suspense的提供可以让我们在应用延迟加载一些内容的同时,使加载过程可视化,这个过程可以是一个加载动画或是一个占位符,这样无疑会使用户体验更流畅,也会让程序的性能从感知层面上有一些提升。

更好的TypeScript支持

Vue 3.0版本已经使用了TypeScript重写,对于终端用户来讲,不论用户使用的是TS还是JS,都会获得更好的编程体验,包括静态检查等。即使你用的是JS,你仍然可以得到参数的提示、类型声明,甚至可以跳进类型声明中去看源码, TS与JS在代码和API之间没有太大区别。并且,目前如果你喜欢使用Class组件,它仍受支持。

当前Vue 3.0.0的版本状态

根据GitHub上该项目的发布计划,Vue 3.0.0版的正式发布计划定于2020年第一季度。目前来看进度是有一些延迟。但Vue 3.0.0正式beta测试仍然按计划启动了,这意味着日程中所有请求都已经处理和完成。

现在团队的重点是文档和升级指南的创建,另外Router和Vuex还有一些兼容性的改动,最后可能会还有一些实验性的小工具,例如:Vite,它是一个支持热更新的web服务器,实际用起来还是挺有意思的。

2.x系列会有最后一次小版本更新

作为可能是Vue 3.x版本正式发行之前的2.x系列的最后一个小版本更新。它将从3.0.0版本向后移植兼容,并加上在3.0.0删除的功能显示相应的弃用警告。

最后

根据已通过的测试来说明这个版本是市场上最快的前端框架。你可以在此处查看这次直播的ppt,以上为这次Vue 3.0.0 Beta的功能说明,是否有你喜欢的内容呢?

而对企业来讲,拥有强大技术实力并能紧跟技术潮流的前端控件无疑是很重要的,而 纯前端表格控件SpreadJS 是其中的代表,全面支持各类框架,可嵌入您系统的在线Excel相信会是你的选择。

还学的动吗? 盘点下Vue.js 3.0.0 那些让人激动的功能的更多相关文章

  1. windows下vue.js开发环境搭建教程

    这篇文章主要为大家详细介绍了windows下vue.js开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中 ...

  2. vue.js使用更简单的方法制作带删除功能的tooolist

    今天复习了下vue.js,先做了个基本版的todolist,做完后自己想加个删除本项的按钮.一开始做没啥头绪了,试了试无果,查了一把后发现网上的那些方法真的是麻烦,自己动手丰衣足食,自己最后换了思路试 ...

  3. 【Vue.js实战案例】- Vue.js递归组件实现组织架构树和选人功能

    大家好!先上图看看本次案例的整体效果. 浪奔,浪流,万里涛涛江水永不休.如果在jq时代来实这个功能简直有些噩梦了,但是自从前端思想发展到现在的以MVVM为主流的大背景下,来实现一个这样繁杂的功能简直不 ...

  4. C#9.0 终于来了,您还学的动吗? 带上VS一起解读吧!(应该是全网第一篇)

    一:背景 1. 讲故事 好消息,.NET 5.0 终于在2020年6月10日发布了第五个预览版,眼尖的同学一定看到了在这个版本中终于支持了 C# 9.0,此处有掌声,太好了!!! .Net5官方链接 ...

  5. ES11来了,还学得动吗?

    写在前面 ES2020(即 ES11)上周(2020 年 6 月)已经正式发布,在此之前进入 Stage 4 的 10 项提案均已纳入规范,成为 JavaScript 语言的新特性 一.特性一览 ES ...

  6. vue.js笔记1.0

    事件: 事件冒泡行为: 1.@click="show($event)" show:function (ev) { ev.cancelBubble=true; } 2.@click. ...

  7. 通过Laravel 初识Vue.js

    最近也在学习laravel的框, 因为之前学过tp框架, 都说laravel是最优雅的框架,所以开学后忍不住去试试这个在国外已经火的不要不要的框架. 总的来说,对于学习完tp框架后,我觉得tp毕竟是中 ...

  8. 【vue.js权威指南】读书笔记(第一章)

    最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...

  9. Vue.js学习 Item7 -- 条件渲染与列表渲染

    v-if 在字符串模板中,如 Handlebars,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}} <h1>Yes</h1 ...

随机推荐

  1. NatApp 外网映射工具

    外网映射工具 在做微信开发或者是对接第三方支付接口时,回调接口可能需要外网访问,这时候开发者在本地测试的时候,需要用到外网测试工具.常用的外网测试工具有natapp.ngrok NatApp简介服务器 ...

  2. 面试刷题30:SpringBean的生命周期?

    spring是Java软件开发的事实标准. 我是李福春,我在准备面试,今天的问题是:springBean的生命周期是怎样的? 答:spring最基础的能力是IOC(依赖注入),AOP(面向切面编程), ...

  3. Windows 7系统记录

    http://www.winwin7.com/ win7带USB3.0和NVME驱动 http://www.mohuishou.com/ 其中的青苹果家园 支持UEFI+GPT机器 http://ww ...

  4. BurpSuit工具安装和基本使用方法

    burpsuite是渗透的必备工具,使用它可以进行一些截包分析,修改包数据.暴力破解.扫描等功能,使用最多的场景应该是设置代理拦截数据包分析数据和爆破. JDK工具下载和安装(可选) 运行BurpSu ...

  5. WiX 自定义

    WiX 允许用户做一些自定义操作 用户界面向导 对于安装界面,用户可以用自己的位图.图标和许可证文本替换默认的.它们的路径存储在变量中,您可以在命令行或直接在源代码中指定这些变量: <WixVa ...

  6. 一文彻底读懂MySQL事务的四大隔离级别

    前言 之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够清楚,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~ 事务 什么是事务? 事务,由一个有限的数据库操 ...

  7. Node教程——Node+MongoDB案例实现用户信息的增删改查

    想要获取源代码的同学可以留言,我不做git上传了,案例太简单 没必要 综合演练 用户信息的增删改查 需求:你需要实现这样的结果 点击添加可以添加用户,点击删除可以删除点击修改可以修改 代码分析: 1. ...

  8. 如何让Java应用成为杀不死的小强?(下篇)

    各位坐稳扶好,我们要开车了.不过在开车之前,我们还是例行回顾一下上期分享的要点. 经过前两期的铺垫及烧脑的分享,我们大概对「如何实现 Java 应用进程的状态监控,如果被监控的进程 down 掉,是否 ...

  9. ELK 是什么?

                                                                         ELK 是什么? 2018年07月04月  09:37:46 ...

  10. springmvc <mvc:resource /> 标签使用

    <!-- 配置静态资源 --><mvc:resources location="/static/" mapping="/static/**"/ ...