雜談: Vue3.0 Pre-Alpha 源碼導(dǎo)讀

5號(hào)凌晨继榆,尤雨溪公布了Vue3源代碼巾表。

源碼地址:https://github.com/vuejs/vue-next

vue-next汁掠,顧名思義,下一個(gè)Vue集币。它的status是Pre-Alpha考阱,解釋一下,產(chǎn)品發(fā)布周期的一個(gè)版本鞠苟,一般是在alpha之前發(fā)布乞榨。也有人叫Development Release、Technical Preview(技術(shù)預(yù)覽版)等偶妖。

功能非常不完善姜凄,有時(shí)候會(huì)有較嚴(yán)重的BUG出現(xiàn)政溃,因?yàn)樗钦麄€(gè)軟件發(fā)布周期中的第一個(gè)階段趾访,所以它的名稱是"Pre-Alpha",希臘字母中的第一個(gè)字母alpha前面加上Pre表示alpha之前董虱。

也就是說這次公布的是預(yù)覽版扼鞋,正式版可能要等到明年,才能與大家見面愤诱。

話不多說接下來我們談?wù)勛兓糠?/p>

Typescript

Vue3.0使用 TypeScript 重構(gòu)云头,如果你還在猶豫是否去了解 TypeScript,這就是你最好的理由淫半,相信我你會(huì)愛上他溃槐。

Proxy

Vue2.x 中,實(shí)現(xiàn)數(shù)據(jù)的可響應(yīng)科吭,需要對(duì) ObjectArray 兩種類型采用不同的處理方式昏滴。 Object 類型通過 Object.defineProperty 將屬性轉(zhuǎn)換成 getter/setter ,這個(gè)過程需要遞歸偵測(cè)所有的對(duì)象 key对人,來實(shí)現(xiàn)深度的偵測(cè)谣殊。

觀測(cè) Array 對(duì)象的變化,需要對(duì) Array 原型上幾個(gè)改變數(shù)組自身的內(nèi)容的方法做了攔截牺弄,這種模式一般稱為代理原型。(原理不再此做過多的闡述

Vue3.0實(shí)現(xiàn)方式是通過 ES6 提供的 Proxy API蛇捌,相比舊的 defineProperty API 咱台,Proxy 可以代理數(shù)組&對(duì)象吵护。

reactivity

Vue3 項(xiàng)目結(jié)構(gòu)采用了 lerna 做 monorepo 風(fēng)格的代碼管理表鳍,稍微介紹下什么是monorepo譬圣。

之前項(xiàng)目迭代更新的時(shí)候雄坪,通常的做法是把一個(gè)大的codebase拆成一些獨(dú)立的package或是module,再將這些功能獨(dú)立的package分別放入單獨(dú)的repository中進(jìn)行維護(hù)绳姨∑可以簡(jiǎn)單地稱這種方式為multiple repositories购撼。

而monorepo則是一種相反的做法,它提倡將所有的相關(guān)package都放入一個(gè)repository來管理碾盐。

這樣比較顯著的特征是項(xiàng)目中會(huì)有個(gè) packages/ 的文件夾揩局。

image.png

Vue2.x的版本響應(yīng)系統(tǒng)凌盯,數(shù)據(jù)觀測(cè)的核心代碼都放在了** observer**中。

Vue3.0 reactive.ts文件励背,它提供了reactive函數(shù)砸西,該函數(shù)實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)觀測(cè)。

packages 目錄導(dǎo)讀

├── compiler-core ------------------------------- 參照之前的Vue2.X entry-runtime.js 運(yùn)行時(shí)構(gòu)建的入口衅疙,不包含模板(template)到render函數(shù)的編譯器
├── compiler-dom ---------------------------------- 參照之前的Vue2.X entry-runtime-with-compiler.js 獨(dú)立構(gòu)建版本
├── reactivity ------------------------------ 響應(yīng)式系統(tǒng) 數(shù)據(jù)觀測(cè)核心代碼
├── runtime-core ---------------------------------- 與平臺(tái)無關(guān)的運(yùn)行時(shí)代碼,Virtual-dom  Vue component相關(guān)代碼
├── runtime-dom ------------------------------  針對(duì)瀏覽器的 runtime 相關(guān)代碼
├── runtime-test ----------------------------------為了測(cè)試而寫的輕量級(jí) runtime
├── server-renderer ----------------------------------- SSR
├── shared ----------------------------------- 可忽略
├── vue ----------------------------------- 用于構(gòu)建「完整構(gòu)建」版本饱溢,引用了上面提到的 runtime 和 compiler
├── global.d.ts ----------------------------------- 不解釋

更多的源碼細(xì)節(jié)后續(xù)更新绩郎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市溉仑,隨后出現(xiàn)的幾起案子状植,更是在濱河造成了極大的恐慌,老刑警劉巖振定,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件后频,死亡現(xiàn)場(chǎng)離奇詭異帝簇,居然都是意外死亡靠益,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門芋浮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纸巷,“玉大人眶痰,你說我怎么就攤上這事〈嬲埽” “怎么了七婴?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵打厘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我嵌施,道長(zhǎng),這世上最難降的妖魔是什么吗伤? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任牲芋,我火速辦了婚禮,結(jié)果婚禮上夕冲,老公的妹妹穿的比我還像新娘裂逐。我一直安慰自己,他們只是感情好弥姻,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布庭敦。 她就那樣靜靜地躺著薪缆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪疼电。 梳的紋絲不亂的頭發(fā)上减拭,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天拧粪,我揣著相機(jī)與錄音,去河邊找鬼濒析。 笑死啥纸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播主经,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼罩驻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼护赊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起节吮,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤透绩,失蹤者是張志新(化名)和其女友劉穎壁熄,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狸臣,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡固棚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年仙蚜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了委粉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娶桦。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衷畦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祈争,到底是詐尸還是另有隱情,我是刑警寧澤忿墅,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站亿柑,受9級(jí)特大地震影響棍弄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呼畸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一役耕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧故慈,春花似錦、人聲如沸察绷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚜印,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間哟冬,已是汗流浹背忆绰。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翰灾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓致开,卻偏偏與公主長(zhǎng)得像萎馅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飒货,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容