Vue3.0 Beta

Vue3.0 Beta新特性以及优化变更

  1. 全新文档RFCs

3.0Beta发布后工作重点保证稳定性和推进各类库生成,所有进度和文档都会在RECs文档看到.

  1. 3.0与2.x对比有哪些变化以及亮点

1.Performance
2.Tree-shaking support
3.Composition API
4.Fragment、Teleport、Suspense
5.Better TypeScript support
6.Custom Renderer API

  • Performance 性能:

3.0修改了Virtual DOM的diff算法
2.x数据变更后,旧的Virtual DOM进行patch算法比较,并算出二者的差异,无论是静态节点还是动态节点,数据更新单个组件内部依然需要遍历该组件的整个Virtual DOM树,虽然2.x能够保证触发更新的组件最小化,但是还是存在性能消耗.
3.0动静结合:找到动态变化的部分,更新时只比对可以变化的部分,减少性能消耗.
3.0将内联函数提取出来
2.x书写内联函数,每次渲染函数执行函数都会生成一个新的内联函数,如果父组件更新而导致子组件的不必要更新.
3.0将内联函数提取出来放在缓存中,不必担心造成不需要的子组件重新渲染.
2.x数据劫持监听利用的是Object.defineProperty,它会侵入式修改对象的属性,无法检测到对象属性的新增或删除,需另外处理.
3.0利用Proxy代理,不会再初始化监听所有的Observer,proxy会'按需'来实现数据监听,支持数组的length,index的更改也能进行监听从而进行响应式数据绑定.
链接地址:https://vue-next-template-explorer.netlify.app/
3.0SSR速度提高了2~3倍

以上示例可以看出带有动态属性或者模板指令的节点都会被标识出来.无论层级嵌套多深,他的动态节点都直接与Block根节点绑定,无需再去遍历静态节点.

image.png

3.0开启事件缓存cacheHandlers

以下示例关闭cacheHandlers,onClick会被视为Props动态绑定,当替换点击事件时需要进行更新.

image.png

开启cacheHandlers后,_cache[1],会自动生成一个缓存的内联函数,变为一个静态节点.

image.png
  • Tree-Shaking

vue3配合了Tree-Shaking在编译的时候将没有用的代码全部移除例如(transition),新的 core runtime: ~10kb gzipped.

  • Composition API

3.0不在推荐使用(mixin),会引起命名冲突,3.0可以将代码组织为每个函数处理特定功能的函数,解决用于多个组件无法重用相同的逻辑.可以在组件之间甚至外部组件之间提取重用逻辑.
链接:https://composition-api.vuejs.org/#logic-reuse-code-organization

  • Fragments

碎片:不再限于模板中必须使用根节点进行包裹,可以支持多个根节点.
render函数也可以返回数组.

  • <Teleport>

传送门:针对React Portal增加多个新功能(Chrome有个提案,会增加一个Portal原生element,为了避免命名冲突,改为Teleport)

  • <Suspense>

悬念:可在嵌套层级中等待嵌套的异步依赖项,支持异步async setup(),支持异步组件.

  • Better TypeScript Support

vue3是利用TypeScript编写的,可以享用自动的类型定义提示.
Javascript和TypeScript中的API相同.也可以使用js继续编写.
支持TSX .
class组件还会继续支持,但须引入vue-class-component@next,该模块还在alpha阶段.

  • 自定义渲染器API

正在进行NativeScript Vue集成
用户可以尝试WebGL自定义渲染器,与普通的Vue应用程序一起使用(Vugel)
意味着以后可以通过 vue, Dom 编程的方式来进行 webgl 编程
链接:https://vugel.planning.nl/#ui-events

剩余工作

1.Docs
2.Router
3.Vuex
4.CLI
5.DevTools
6.IE11(目前还不兼容)

  • 新工具(vite)

链接https://github.com/vuejs/vite
一个简易的http服务器,无需webpack编译打包,根据请求的Vue文件,即时对其编译,然后作为JavaScript发送回去.支持热更新(速度快)

  • vue-test-utils(单元测试实用工具库)

  • DevTools(基于chrome浏览器插件,方便调试vue应用)

  • IDE Support (Vetur 插件)

  • Nuxt(是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容