好消息,vue3.0 进入 beta 阶段!
昨天,4 月 16 日,vue 3 正式进入 beta 阶段。同日,尤大参加了 State of Vue 的线上活动,以下是他上传到 google docs 上的 slides :
可以 FQ 的同学可以直接看。如果不方便的话,可以继续往下看一下:
vue 3 核心的进度情况
进入 Beta 阶段意味着什么?
- All planned RFCs merged & implemented
- Focus is now on stability and library integrations
目前,所有被列入计划的 RFCs 已经实现了,接下来 Vue 团队的重点是让 Vue 3 变得更加稳定,以及让 vue 相关的第三方库支持 vue 3。
3.0 对比 2.x 有哪些重要变更?
- Performance
- Tree-shaking support
- Composition API
- Fragment, Teleport, Suspense
- Better TypeScript support
- Custom Renderer API
主要体现在 性能、Tree-shaking support 、Composition API 、 Fragment 、TypeScript支持度 和 自定义 Render 上。
性能
- Rewritten virtual dom implementation
- Compiler-informed fast paths
- More efficient component initialization
- 1.3~2x better update performance*
- 2~3x faster SSR*
性能上,主要是 重写了Vdom , compiler-informed fast paths(编译模板的优化?), 以及实现了更加高效的组件初始化。
Tree-shaking support
- Most optional features (e.g. v-model, ) are now tree-shakable
- Bare-bone HelloWorld size: 13.5kb
- 11.75kb with only Composition API support
- All runtime features included: 22.5kb
- More features but still lighter than Vue 2
这部分的优化主要是减少了 vue 的打包体积。很多时候,我们的应用并不是需要 vue 提供的所有功能的,在 vue 2 我们没有很好的办法把这些不想要的功能排除掉,但是 3.0 我们就做成了按需引入。举例来说,内置组件像 keep-alive、transition,指令的配合的运行时比如 v-model、v-for 等都可以按需引入 。这样就可以让纯净的 vue 的体积变得更小了。
Composition API
- Usable alongside existing Options API
- Flexible logic composition and reuse
- Reactivity module can be used as a standalone library
Composition API 是和 React Hooks 类似的东西,他们的主要作用是提高了代码逻辑的可复用性,从而实现了与模板无关性。另外,把 Reactivity 模块独立开来,意味着 vue 3 的响应式模块可以和其他框架组合。之前昊神就发过一篇文章 40行代码把Vue3的响应式集成进React做状态管理 有兴趣的可以去看一下。
Fragments
- No longer limited to a single root node in templates
- Manual render functions can simply return Arrays
- “Just works”
不再限制 tmeplate 里面只有一个根节点了,render 函数也可以返回数组了,有点类似实现了 React.Fragments 的功能 。
<Teleport>
- Previously known as
- More details to be shared by @Linusborg
<Suspense>
- Wait on nested async dependencies in a nested tree
- Works with async setup()
- Works with Async Components
Better TypeScript Support
- Codebase written in TS w/ auto-generated type definitions
- API is the same in JS and TS
- In fact, code will also be largely the same
- TSX support
- Class component is still supported (vue-class-component@next is currently in alpha)
对 TS 及 TSX的支持度更加友好了。类组件还会继续支持,但是需要引入 vue-class-component@next,该模块目前还处在 alpha 阶段。
Custom Renderer API
- NativeScript Vue integration underway by @rigor789
- Users already experimenting w/ WebGL custom renderer that can be used alongside a normal Vue application (Vugel)
这是个振奋人心的消息,意味着以后我们可以通过 vue ,实现用 dom 编程的方式来进行 webgl 编程 。感兴趣可以看这里:Getting started vugel
vue 3 生态的进度情况
文档和迁移指引进度
- New Docs under heavy work by @NataliaTepluhina, @sdras, @bencodezen & @phanan
- @sdras starting to work on Migration Guide
- @sodatea has started working on CodeMods
vue-router
- vue-router@next is currently in alpha, thanks to work by @posva
Vuex
- vuex@next (same API but with Vue 3 compat) currently in alpha, thanks to work by @KiaKing
- Team is experimenting with Vuex API simplification for the next iteration
vue-cli
- Experimental Support via vue-cli-plugin-vue-next by @sodatea
- (wip) CodeMods support for upgrading Vue 2 applications
vue-test-utils
- test-utils@next being worked on by @lmiller1990, @dobromir-hristov, @afontcu & @JessicaSachs
DevTools
- Early prototype already working by @Akryum, full integration will be worked on as we reach beta
IDE Support (Vetur)
- @znck currently experimenting with Type checking for templates
- @octref will be working on Vetur integration for Vue 3 in May
Nuxt
- Nuxt team is working on Vue 3 integration and already has working prototype.
What About 2.x?
- There will be one last minor release (2.7)
- Backporting compatible improvements from 3.0
- Deprecation warnings for features removed in 3.0
- LTS for 18 months
可见,vue 2 并没有过时, 还会有小更新,并且还会维护 18 个月。
总结
虽然 vue 3 已经进入 beta 阶段,但是距离能应用到生产环境还是有很长的路要走,最起码,在 2020 年 继续使用 vue 2 也不会过时,最主要的原因是 vue 3 生态还没有完善。就像 python3 出来那么久了,现在还有很多人使用 python2 一样,因为还有很多 python 的库不兼容 python3 的。
好消息,vue3.0 进入 beta 阶段!的更多相关文章
- 通过10个实例小练习,快速熟练 Vue3.0 核心新特性
Vue3.0 发 beta 版都有一段时间了,正式版也不远了,所以真的要学习一下 Vue3.0 的语法了. GitHub 博客地址: https://github.com/biaochenxuying ...
- Beta阶段冲刺2.0
1. 提供当天站立式会议照片一张 2. 每个人的工作 (有work item 的ID) 成员 昨天已完成的工作 今天计划完成的工作 工作中遇到的困难 具体贡献 郑晓丽 "我的活动详情&quo ...
- Vue3实战系列:Vue3.0 + Vant3.0 搭建种子项目
最近在用 Vue3 写一个开源的商城项目,开源后让大家也可以用现成的 Vue3 大型商城项目源码来练练手,目前处于开发阶段,过程中用到了 Vant3.0,于是就整理了这篇文章来讲一下如何使用 Vue3 ...
- 2016福州大学软件工程Beta阶段团队作业成绩汇总
1.评分规则 本次Beta阶段团队作业评分方法如下: 团队得分=[[7次scrum过程评分+(小组互评得分+教师评分)/2]/2],其中过程.小组.教师各30分 说明:由于没有规定提交团队贡献比,因此 ...
- 【Beta阶段】团队源代码管理
0. 快速上手与理解 如果你的团队来了一个新队员,有一台全新的机器,你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新.最稳定版本的软件编译出来,并运行必要的 ...
- 团队作业8——第二次项目冲刺(Beta阶段)
Deadline: 2017-5-28 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目包括后文的三个个方面 冲刺计划安排(单独1篇博客) 七天的敏捷冲刺(每天发布1篇,共 ...
- 【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)
写在前面的话 此次团队作业8可以拆分成两部分:1.beta阶段冲刺计划安排,2.7天敏捷冲刺."我们很低调"没有使用leangoo,经过与张老师的商议,张老师同意他们不使用lean ...
- 集美大学网络1413第十三次作业成绩(团队八) -- 第二次项目冲刺(Beta阶段)
题目: 团队作业8--第二次项目冲刺(Beta阶段) 团队作业8-成绩: 团队/分值 新加入成员 角色 技术特点 改善的功能. 原因. bug 新增功能. 方法. 如何实现 团队分工改进. 原因 改 ...
- 【1414软工助教】团队作业8——第二次项目冲刺(Beta阶段) 得分榜
题目 团队作业8--第二次项目冲刺(Beta阶段) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析&a ...
随机推荐
- Jmeter中使用MD5方法
在现在这家公司做测试的项目有用到鉴权,token的生成方式有使用到md5,具体的请求url和入参就不方便透露,讲一讲使用方法吧! 自带的Jmeter插件中是没有这个md5的所以,我们可以 (1)打开选 ...
- 写了个python脚本,循环执行某一个目录下的jmeter脚本————解决的问题,每次回归时,都得一个个拉取
import os import time #需要你改的就这3个参数 #path是放你jmx脚本的文件夹路径 path="D:\\桌面\\每次都是从共享上考最新的\\" #jtl_ ...
- MyBatis框架——多表查询
MyBatis多表查询, 从表中映射主表,使用 association 标签,通过设置 javaType 属性关联实体类: 主表映射从表,使用 collection 标签,通过 ofType 属性关联 ...
- 【原创】基于RBI的性能测试理念,通过jmeter快速定位接口最大并发用户数
测试工具:jmeter v_5.2 测试对象:某网站的物料获取接口,需登录后操作 测试目的:快速定位该接口最大并发用户数 思路&步骤: 1.模拟一个场景,某天临近下班,主管突然过来让你测下你们 ...
- 【2019南昌网络赛】B-Fire-Fighting Hero
题目链接 分析 英雄方面很简单,跑一遍 Dijkstra 就行了,但是灭火团队就有点麻烦了. 这里可以借助一下最大流的建边来解决这个问题: 我们可以另外找一个点作为起点,然后建立从那个点到每一个团队的 ...
- 粒子群优化算法(PSO)之基于离散化的特征选择(FS)(三)
作者:Geppetto 前面我们介绍了特征选择(Feature Selection,FS)与离散化数据的重要性,总览的介绍了PSO在FS中的重要性和一些常用的方法,介绍了FS与离散化的背景,介绍本文所 ...
- 二维线段树 poj-2155
题意:t组样例 ,输入 n,m,表示n*n的矩阵进行m次操作 ,C: 输入两个坐标 ,组成的矩形 进行取反操作 ,Q:对输的坐标位置输入其值. 思路:一开始想的是用1000(表示x轴)个线段树(对每段 ...
- Python python 数据类型--集
# set 集 '''Python还包括集合的数据类型.集合是无序集合,没有重复元素. 基本用途包括成员资格测试和消除重复条目. 集合对象还支持数学运算,如并集,交集,差异和对称差异. ''' nam ...
- 树莓派 zeroWH 使用笔记
更新raspbian apt-get update apt-get upgrade 删除python2 sudo rm /usr/bin/python安装python3 sud ...
- 少儿编程崛起?2020年4月编程语言排名发布——Java,C,Python分列前三,Scratch挤进前20
前三并没有什么悬念,依然是Java,C,Python.C与Java的差距正在缩小,不过我们不用担心,在大数据分析领域Java,Python依然都是不可或缺的. 基于图形的基于块的编程语言Scratch ...