日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

尤雨溪:Vue 3 開發(fā)中的經(jīng)驗和教訓(xùn)

來源: 責(zé)編: 時間:2023-12-20 17:46:32 252觀看
導(dǎo)讀錯誤做法在升級 Vue 3 的過程中,Vue 團隊有一些做的不好的地方,也從中吸取了一些教訓(xùn)。太多破壞性更改首先,每個變更都可能引發(fā)許多小的破壞性修改。盡管看似可以單獨管理每項變更,但由于變更之間存在關(guān)聯(lián),因此復(fù)雜性呈指

GVL28資訊網(wǎng)——每日最新資訊28at.com

錯誤做法

在升級 Vue 3 的過程中,Vue 團隊有一些做的不好的地方,也從中吸取了一些教訓(xùn)。GVL28資訊網(wǎng)——每日最新資訊28at.com

太多破壞性更改

首先,每個變更都可能引發(fā)許多小的破壞性修改。盡管看似可以單獨管理每項變更,但由于變更之間存在關(guān)聯(lián),因此復(fù)雜性呈指數(shù)級增長。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

由此認識到:GVL28資訊網(wǎng)——每日最新資訊28at.com

  • 要對于想要更改或刪除的內(nèi)容,確保其正常運行后再進行修改。
  • 對于新增的功能,應(yīng)該有一個逐步引入的階段。在這個階段中,新的功能應(yīng)該在特定標(biāo)志下引入,允許用戶選擇性使用,這樣用戶可以根據(jù)自己的需求和偏好來決定是否使用新功能,而不會破壞其他內(nèi)容。
  • 最終,對于已經(jīng)棄用的功能,應(yīng)該在未來的版本中逐步刪除。在刪除之前,應(yīng)該確保這些功能不會對現(xiàn)有用戶造成任何影響,并提前通知用戶有關(guān)棄用和刪除的計劃。
  • Vue 維護者也會分階段進行版本變更,避免在一個版本中出現(xiàn)大量重大變化。

長遠來看,這些策略對于 Vue 的發(fā)展至關(guān)重要。在短期內(nèi),Vue 不會考慮任何重大變化,而是專注于改進和優(yōu)化現(xiàn)有的功能。未來,希望 Vue 3 能夠成為一個穩(wěn)定的基礎(chǔ),為 Vue 的進一步發(fā)展提供堅實的基礎(chǔ)。GVL28資訊網(wǎng)——每日最新資訊28at.com

關(guān)注生態(tài)系統(tǒng)

第二個錯誤是低估了 Vue 3 升級對生態(tài)系統(tǒng)庫的影響。Vue 團隊原本認為,在面臨如此巨大的工作量時,庫的開發(fā)者不需要將他們的現(xiàn)有庫調(diào)整為 Vue 3 的兼容版本。GVL28資訊網(wǎng)——每日最新資訊28at.com

結(jié)果是,當(dāng) Vue 3 進行了許多內(nèi)部 API 和其他內(nèi)部行為的變更時,依賴這些內(nèi)部行為的大型庫升級到 Vue 3 變得非常困難。這導(dǎo)致了主要生態(tài)系統(tǒng)庫(如 Nuxt 和 Beautify)的升級過程變得漫長而復(fù)雜。GVL28資訊網(wǎng)——每日最新資訊28at.com

由此認識到:生態(tài)系統(tǒng)依賴性至關(guān)重要。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

為了有效應(yīng)對這些潛在問題,Vue 引入了一個生態(tài)系統(tǒng)自動化持續(xù)集成系統(tǒng),該系統(tǒng)專門針對 Vue 核心的下游生態(tài)系統(tǒng)依賴和依賴 Vue 的下游項目進行測試。GVL28資訊網(wǎng)——每日最新資訊28at.com

目前,已經(jīng)成功集成了超過 15 個項目,未來還將繼續(xù)增加。在每次提交變更之后,該系統(tǒng)都會對所有下游庫進行測試,確保在發(fā)布前就能發(fā)現(xiàn)潛在的問題。一旦發(fā)現(xiàn)問題,可以與這些生態(tài)系統(tǒng)庫的作者合作,解決可能出現(xiàn)的兼容性問題。GVL28資訊網(wǎng)——每日最新資訊28at.com

除此之外,Vue 團隊希望明確禁止使用內(nèi)部 API,因為他們發(fā)現(xiàn)這些內(nèi)部 API 是導(dǎo)致庫子組使用 Vue 時遇到困難的主要因素。GVL28資訊網(wǎng)——每日最新資訊28at.com

幸運的是,隨著 TypeScript 在大多數(shù)項目中的普及,現(xiàn)在可以在類型級別和運行時級別實施這種禁止。對于官方工具或庫,仍需要公開一些內(nèi)部 API 以實現(xiàn)連接。然而,對于無法直接控制的生態(tài)系統(tǒng)庫,將逐步從類型定義中移除這些私有 API,以確保如果這些庫試圖使用它們時就會引發(fā)錯誤。GVL28資訊網(wǎng)——每日最新資訊28at.com

同時發(fā)布所有內(nèi)容

第三個錯誤就是:分開發(fā)布。Vue 3 核心在 2020 年 9 月發(fā)布,然而許多生態(tài)系統(tǒng)組件仍在開發(fā)中。初期文檔存在一些問題,并且 composition API 沒有在文檔中作為首要概念進行介紹。在 Vue 核心穩(wěn)定版發(fā)布時,官方庫、遷移構(gòu)建和開發(fā)工具支持尚未完善。GVL28資訊網(wǎng)——每日最新資訊28at.com

Vue 團隊之所以這樣做,是因為認為這些功能很重要,能夠盡早推出,以鼓勵生態(tài)系統(tǒng)中的庫和開發(fā)者開始嘗試和使用新的功能。這樣做的結(jié)果就是,在沒有完整的生態(tài)系統(tǒng)支持的情況下發(fā)布,給很多早期采用者帶來了困惑。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

尤雨溪表示,在一個重大發(fā)布中,重要的是要確保一切都準(zhǔn)備就緒,而不是匆忙發(fā)布。GVL28資訊網(wǎng)——每日最新資訊28at.com

更重要的是,在發(fā)布大型版本之前,需要積極主動地與利益相關(guān)者和生態(tài)系統(tǒng)合作,通過與庫維護者進行合作,收集反饋并提前升級項目。這種合作方式可以更加積極主動地推動生態(tài)系統(tǒng)的改進和發(fā)展。如果希望在未來實現(xiàn)更大的變更,這一點是必須要改進的。GVL28資訊網(wǎng)——每日最新資訊28at.com

正確做法

當(dāng)然,在升級 Vue 3 的過程中,也有很多好的做法,下面就來詳細看一看。GVL28資訊網(wǎng)——每日最新資訊28at.com

使用 TypeScript

使用 TypeScript 是最正確的做法之一。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在,類型檢查已成為前端解決方案的必備要素。當(dāng)我們審視主要的前端解決方案時,可以發(fā)現(xiàn) TypeScript 的集成和支持已成為人們首要關(guān)注的事項。GVL28資訊網(wǎng)——每日最新資訊28at.com

采用 TypeScript 已被證明在長期項目和大型團隊環(huán)境中顯著提高了代碼的可維護性。在 Vue 的代碼庫中使用 TypeScript 也極大地增強了 Vue 自身的可維護性,為未來的迭代和擴展打下了堅實的基礎(chǔ)。GVL28資訊網(wǎng)——每日最新資訊28at.com

Composition API

第二個正確的做法是采用了組合式 API。最初這受到了人們的質(zhì)疑,但對于 Vue 來說效果非常好。引入組合式 API 時,它受到了 React hooks 的啟發(fā),但是它根植于 Vue 自己的響應(yīng)性系統(tǒng)。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

實際上,仍然有人喜歡 Options API,但它存在一些組合式 API 沒有的限制。這部分原因是 Vue 的用戶群體已經(jīng)發(fā)生了變化。在早期,大多數(shù)用戶關(guān)注的是小到中型使用案例,重點是易于集成到現(xiàn)有的后端系統(tǒng)中。但隨著時間的推移,Vue 的維護者們看到用戶構(gòu)建了更復(fù)雜和要求更高的使用案例,以及大規(guī)模單頁面應(yīng)用。GVL28資訊網(wǎng)——每日最新資訊28at.com

為了讓 Vue 適應(yīng)不斷變化的用戶群體和行業(yè)需求,我們必須提出一些解決新問題的新方法,其中可擴展性是其中一個主要問題。因此,組合式 API 本質(zhì)上是為了解決這種可擴展性問題而發(fā)明的,旨在提供一種解鎖這種可擴展性的方法,同時盡可能地保留根植于 Vue 的用戶友好性。雖然在早期有很多爭議,但 Vue 團隊的決策最終被證明是正確的。GVL28資訊網(wǎng)——每日最新資訊28at.com

那些采用組合式 API 的開發(fā)者發(fā)現(xiàn)它確實有很多好處。組合式 API 的出現(xiàn)也催生了強大的社區(qū)努力,例如 VueUse,它提供了一系列極其有用的實用程序,解決了許多問題。這些問題并不適合包含在 Vue 核心中,但社區(qū)很好地解決了這些問題。事實上,VueUse 可能是直接由組合式 API 帶來的最大好處之一。GVL28資訊網(wǎng)——每日最新資訊28at.com

開發(fā)者體驗

Vue 在開發(fā)者體驗方面做出了明智的選擇,這一點也得到了回報。這一選擇促成了備受歡迎的 Web 構(gòu)建工具 Vite 的誕生,它源自一個專為 Vue 開發(fā)的開發(fā)服務(wù)器原型。如今,許多框架都在利用 Vite,包括 Nuxt。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

Vue 對其 IDE 方面的投資也已經(jīng)取得了豐厚的回報,形成了一個擴展的生態(tài)系統(tǒng),使 Web 開發(fā)人員受益良多。這些 IDE 投入催生了 Volar 的誕生,它是一個子項目的總稱,涵蓋了 Vue 語言服務(wù)器和 Vue TSC。Vue TSC 是一個命令行界面,它包裝了 TypeScript,并為 Vue 組件提供了命令行時間檢查功能。GVL28資訊網(wǎng)——每日最新資訊28at.com

這套工具最初僅為 Vue 而設(shè)計,類似于 Vite,但現(xiàn)在已經(jīng)擴展成為一個工具集生態(tài)系統(tǒng),幫助其他框架構(gòu)建更出色的 IDE 和 TypeScript 支持。Volar 目前正逐步轉(zhuǎn)變成一個框架無關(guān)的核心,不僅支持 Vue,還支持 Astro、MDX 等其他可能采用它的框架。GVL28資訊網(wǎng)——每日最新資訊28at.com

這是 Vue 生態(tài)系統(tǒng)所獨有的現(xiàn)象,我們看到很多源自生態(tài)系統(tǒng)的創(chuàng)新理念開始產(chǎn)生比 Vue 生態(tài)系統(tǒng)更大的影響。GVL28資訊網(wǎng)——每日最新資訊28at.com

Vue 3 更好且不斷增長

Vue 3 成功實現(xiàn)了他們設(shè)定的目標(biāo),包括提供更好的性能、更強大的類型支持、更優(yōu)秀的可擴展性和更優(yōu)的開發(fā)者體驗。隨著 Vue 2 的支持在本月結(jié)束,Vue 3 的下載量已經(jīng)接近 Vue 總下載量的 48.8%。在過去一年中,Vue 3 的采用率幾乎翻了一番。這表明 Vue 3 在迅速贏得開發(fā)者的青睞和信任,并在前端開發(fā)領(lǐng)域產(chǎn)生了深遠的影響。GVL28資訊網(wǎng)——每日最新資訊28at.com

GVL28資訊網(wǎng)——每日最新資訊28at.com

展望未來

  • 穩(wěn)定性是關(guān)鍵
  • 在可預(yù)見的未來不會出現(xiàn) Vue 2 到 3 這種重大變更
  • 專注于可無縫采用的改進,例如:
  • 響應(yīng)式系統(tǒng)/解析器優(yōu)化
  • Vapor Mode:可選,類似與 solid 的解析策略

本文鏈接:http://www.www897cc.com/showinfo-26-50750-0.html尤雨溪:Vue 3 開發(fā)中的經(jīng)驗和教訓(xùn)

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: C++類模板特化與繼承使用說明書,新手也能get

下一篇: React高手都會用的useMemo有什么用的?

標(biāo)簽:
  • 熱門焦點
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個數(shù)字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術(shù),可以幫助我們寫出更加優(yōu)雅、泛用的函數(shù)。本文將首先介紹柯里化和反柯里化的概念、實現(xiàn)原理和應(yīng)用
  • 花7萬退貨退款無門:誰在縱容淘寶珠寶商家造假?

    來源:極點商業(yè)作者:楊銘在淘寶購買珠寶玉石后,因為保證金不夠賠付,店鋪關(guān)閉,退貨退款難、維權(quán)無門的比比皆是。“提供相關(guān)產(chǎn)品鑒定證書,支持全國復(fù)檢,可以30天無理由退換貨。&
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己“當(dāng)家”的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 華為Mate 60系列用上可變靈動島:正式版體驗將會更出色

    這段時間以來,關(guān)于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • AI芯片初創(chuàng)公司Tenstorrent獲三星和現(xiàn)代1億美元投資

    Tenstorrent是一家由芯片行業(yè)資深人士Jim Keller領(lǐng)導(dǎo)的加拿大初創(chuàng)公司,專注于開發(fā)人工智能芯片,該公司周三表示,已經(jīng)從現(xiàn)代汽車集團和三星投資基金等
  • iQOO Neo8 Pro即將開售:到手價3099元起 安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
  • 蘋果140W USB-C充電器:采用氮化鎵技術(shù)

    據(jù)10 月 30 日 9to5 Mac 消息報道,當(dāng)蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
  • 華為舉行春季智慧辦公新品發(fā)布會 首次推出電子墨水屏平板

    北京時間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發(fā)布會,在海外市場推出之前已經(jīng)在中國市場上市的筆記本、平板、激光打印機等辦公產(chǎn)品,并首次推出搭載
Top 主站蜘蛛池模板: 石泉县| 闻喜县| 克拉玛依市| 贵定县| 彰化市| 鄯善县| 手机| 改则县| 株洲县| 精河县| 邹城市| 龙山县| 元朗区| 桐乡市| 西城区| 万安县| 蒙自县| 巴彦县| 简阳市| 汉阴县| 甘谷县| 汽车| 五家渠市| 姚安县| 苍溪县| 大竹县| 巢湖市| 扬中市| 方山县| 天津市| 墨脱县| 瑞安市| 且末县| 百色市| 余姚市| 新乡市| 中西区| 互助| 莱州市| 乌鲁木齐县| 建宁县|