最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

快速了解vue3.0新特性

2020-06-15 12:38 作者:Alice鐺鐺鐺  | 我要投稿

場景:vue3.0源碼已經(jīng)發(fā)布了半年了,尤雨溪大大最近也頻繁開課更新進展,雖然公司項目里面引入3.0還需要一段時間的沉淀,但是不妨礙我們可以大致了解下3.0的新特性和修改

主要參考的相關(guān)鏈接:

// Composition API詳情:

'https://composition-api.vuejs.org/api.html#advanced-reactivity-apis'?

// monorepo結(jié)構(gòu)介紹

'https://trunkbaseddevelopment.com/monorepos/'?

// 用戶意見收集RFC

'https://github.com/vuejs/rfcs/blob/function-apis/active-rfcs/0000-function-api.md'?

// vue3.0源碼的github地址?

'https://github.com/vuejs/vue-next'?

// 尤雨溪4.21B站直播ppt?

'https://juejin.im/post/5e9f6b3251882573a855cd52'?

// 尤雨溪5.28發(fā)布微博?

'https://increment.com/frontend/making-vue-3/'?

// 尤雨溪6.4直播ppt?

'https://mp.weixin.qq.com/s?__biz=MzA4MDU1MDExMg==&mid=2247483829&idx=1&sn=75ef516c9174cda030db48d4ab5722e3&chksm=9fa3c03aa8d4492c5d49866df093f61aeb3f8484bf6b75ad87a63d207cfdc3d18910fe42702f&token=454539811&lang=zh_CN#rd'?

// 阮一峰的ES6?

'https://es6.ruanyifeng.com/#docs/proxy'

總結(jié):從6個方面拋出新特性,感興趣的小伙伴自己去找源碼深入~

本文內(nèi)容目錄

1、雙向綁定

2.0現(xiàn)有限制:

????1、無法檢測到新的屬性添加/刪除?

????2、無法監(jiān)聽數(shù)組的變化?

????3、需要深度遍歷,浪費內(nèi)存

3.0優(yōu)化:

????1、允許框架攔截對象上的操作?

????2、Proxy默認可以支持數(shù)組?

????3、多層對象嵌套,使用懶代理

【注意:要看這部分源碼,先保證對阮一峰的ES6博客中Proxy、Reflect、Set和Map有一定程度的了解】

核心:主要通過函數(shù)reactive()給對象新增一個Proxy對象監(jiān)聽內(nèi)部的屬性來實現(xiàn)數(shù)據(jù)監(jiān)聽,部分源碼如下

reactive()函數(shù)部分源碼

解析:通過observed = new Proxy(target, handle);給每一個傳入的target對象包一個Proxy對象,有操作時觸發(fā)handle方法;

其中let toProxy = new WeakMap(),WeakMap是弱引用,key為對象,用于緩存代理的target,let toRaw = new WeakMap(),用于緩存observed,避免重復(fù)代理;

handle方法中有g(shù)et()和set(),在get()中執(zhí)行track()依賴收集,在set()中執(zhí)行trigger()觸發(fā)更新。

2、虛擬DOM

2.0VDOM性能瓶頸:?

????1、雖然vue能夠保證觸發(fā)更新的組件最小化,但單個組件部分變化需要遍歷該組件的整個vdom樹?

????2、傳統(tǒng)vdom性能跟模版大小正相關(guān),跟動態(tài)節(jié)點的數(shù)量無關(guān)

3.0優(yōu)化工作?

????1、將AST基于動態(tài)節(jié)點指令(if,for,slot)切割為嵌套的區(qū)塊?

????2、主動檢測模版中的靜態(tài)節(jié)點?

????3、給元素一個追蹤標(biāo)記,無論層級嵌套多深,更新時可以直接遍歷動態(tài)節(jié)點

3.0的新策略將vdom更新性能與模版大小解耦,變?yōu)榕c動態(tài)節(jié)點的數(shù)量相關(guān),整體比vue2性能提升2~5倍。

3、Tree-Shaking

2.0現(xiàn)有限制: 并不是每個人都使用框架的所有功能,但仍需下載/解析相應(yīng)代碼

3.0優(yōu)化:將大多數(shù)全局API和內(nèi)部組件移至ES模塊導(dǎo)出,tree-shaking更友好

4月份的數(shù)據(jù)顯示,vue2.0的運行時大小是22.5kb,3.0在13.5kb。

4、Composition API

// Composition API詳情:

'https://composition-api.vuejs.org/api.html#advanced-reactivity-apis'

這部分內(nèi)容實在太多,給一個網(wǎng)站大家可以自己去查看~

5、使用TS

整個3.0的源碼都是用ts重構(gòu)的,TypeScript的好處是有類型檢查~

6、內(nèi)部模塊解耦

神奇的monorepo結(jié)構(gòu)

// monorepo結(jié)構(gòu)介紹

'https://trunkbaseddevelopment.com/monorepos/'



快速了解vue3.0新特性的評論 (共 條)

分享到微博請遵守國家法律
温宿县| 揭西县| 连平县| 延长县| 湟源县| 珲春市| 东宁县| 怀安县| 台湾省| 噶尔县| 吉安市| 云安县| 方山县| 堆龙德庆县| 虎林市| 聂荣县| 蒲江县| 五台县| 永济市| 承德县| 武山县| 腾冲县| 永泰县| 遵义市| 万荣县| 康平县| 团风县| 太仓市| 锡林浩特市| 泉州市| 文化| 禹城市| 伊通| 汪清县| 宜黄县| 六枝特区| 酒泉市| 石河子市| 阿鲁科尔沁旗| 秦安县| 甘谷县|