W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Angular 從 Google 內(nèi)部和更廣泛的開源社區(qū)都收到了大量的特性請求。與此同時,我們的項(xiàng)目列表包含大量維護(hù)任務(wù)、代碼重構(gòu)、潛在的性能提升等等。我們匯集了來自來自開發(fā)者關(guān)系部門、產(chǎn)品管理部門和工程部門的代表,以確定此列表的優(yōu)先順序。當(dāng)新項(xiàng)目進(jìn)入隊(duì)列時,我們會根據(jù)其它項(xiàng)目的相對優(yōu)先級定期對它們進(jìn)行排位。當(dāng)工作完成后,項(xiàng)目就會在隊(duì)列中向上移動。
下面這些項(xiàng)目并沒有關(guān)聯(lián)到特定的 Angular 版本。我們會在完成時發(fā)布它們,它們會根據(jù)我們的發(fā)布計(jì)劃,并遵循語義化版本規(guī)范,變成特定版本的一部分。比如,當(dāng)完成各種特性后會在下一個次要版本中發(fā)布,如果包含重大變更,則會到下一個主版本中發(fā)布。
在使 Angular 更簡單的過程中,我們正在努力引入 API,允許開發(fā)人員初始化應(yīng)用程序、實(shí)例化組件,以及在不使用 NgModules 的情況下使用路由器。Angular v14 引入了獨(dú)立組件、指令和管道的 API 的開發(fā)人員預(yù)覽。在接下來的幾個季度,我們將收集開發(fā)人員的反饋,并完成使 API 穩(wěn)定的項(xiàng)目。作為下一步,我們將努力改進(jìn)用例,例如 TestBed 、Angular 元素等。
Aurora和 Angular 團(tuán)隊(duì)正在努力實(shí)現(xiàn)旨在改進(jìn)Core Web Vitals的鏡像指令。目前,該項(xiàng)目處于原型設(shè)計(jì)階段,團(tuán)隊(duì)正在與合作伙伴驗(yàn)證鏡像指令。
我們進(jìn)行了 40 次系列采訪,以了解社區(qū)對微前端架構(gòu)的需求。我們隨后進(jìn)行了更廣泛的社區(qū)調(diào)查。下一步,我們將公開分享對結(jié)果的分析。
通過加快構(gòu)建時間研究現(xiàn)代包來改善開發(fā)體驗(yàn)。作為使用esbuild和其他開源解決方案的項(xiàng)目試驗(yàn)的一部分,將它們與 Angular CLI 中的最先進(jìn)工具進(jìn)行比較,并報告結(jié)果。在 Angular v14 中,我們發(fā)布了對 esbuild 的實(shí)驗(yàn)性支持。接下來,團(tuán)隊(duì)將專注于驗(yàn)證新原型以及實(shí)現(xiàn) watch 和 Sass 支持。
Web 生態(tài)系統(tǒng)在不斷發(fā)展,我們希望在 Angular 中反映最新的現(xiàn)代標(biāo)準(zhǔn)。在這個項(xiàng)目中,我們旨在提供有關(guān)在 Angular 中使用現(xiàn)代 CSS 特性的指南,以確保開發(fā)人員遵循布局、樣式等方面的最佳實(shí)踐。
一個長期存在的特性請求是添加向宿主元素添加指令的能力。該特性允許開發(fā)人員在不使用繼承的情況下使用其他行為來增強(qiáng)自己的組件。該項(xiàng)目需要在 API 的定義、語義和實(shí)現(xiàn)方面付出巨大的努力。
Angular 和 Chrome DevTools 正在共同努力,為錯誤消息啟用更具可讀性的堆棧跟蹤。
我們正在開發(fā)新的 CDK 原語,以促進(jìn)根據(jù) WAI-ARIA 設(shè)計(jì)模式為Listbox和Combobox創(chuàng)建自定義組件。作為該項(xiàng)目的一部分,Angular v14 引入了穩(wěn)定的菜單和對話框原語。
MDC Web是由 Google Material Design 團(tuán)隊(duì)創(chuàng)建的一個庫,它為構(gòu)建 Material Design 組件提供了可重用的原語。Angular 團(tuán)隊(duì)正在將這些原語合并到 Angular Material 中。使用 MDC Web 可以使 Angular Material 與 Material Design 規(guī)范更緊密地保持一致,擴(kuò)展無障礙性,提高組件質(zhì)量,并提高我們團(tuán)隊(duì)的速度。
我們正在根據(jù) WCAG 等無障礙性標(biāo)準(zhǔn)評估 Angular Material 中的組件,并努力解決此過程中出現(xiàn)的任何問題。
確保所有現(xiàn)有的文檔都適合一組一致的內(nèi)容類型。將過度使用教程風(fēng)格的文檔更新為獨(dú)立的主題。我們希望確保主教程之外的內(nèi)容是自給自足的,而不與一系列指南緊密耦合。在 2022 年第二季度,我們重構(gòu)了模板內(nèi)容。下一步是為組件和依賴注入引入更好的結(jié)構(gòu)。
作為這項(xiàng)工作的一部分,我們將使用服務(wù)器端渲染、不同的方法和 Angular 的機(jī)會來探索水化的問題空間。作為這個項(xiàng)目的結(jié)果,我們將驗(yàn)證所做的工作以及行動計(jì)劃。
我們有一套針對每一次代碼更改都要運(yùn)行的基準(zhǔn)測試,以確保 Angular 符合我們的性能標(biāo)準(zhǔn)。為確保框架的運(yùn)行時在代碼更改后不會退化,我們需要改進(jìn)儀表板所使用的一些現(xiàn)有基礎(chǔ)設(shè)施。
我們將設(shè)計(jì)并實(shí)施一項(xiàng)計(jì)劃,使 Zone.js 在 Angular 應(yīng)用程序中成為可選項(xiàng)。這樣,我們簡化了框架,改進(jìn)了調(diào)試,并減少了應(yīng)用程序包的大小。此外,這讓我們可以利用當(dāng)前 Zone.js 不支持的內(nèi)置 async/await 語法。
將 Angular 編譯器作為 TypeScript 編譯器的插件分發(fā)將大大提高開發(fā)人員的構(gòu)建性能并降低維護(hù)成本。
Web 應(yīng)用程序的一個常見問題是它們的初始加載時間很慢。改進(jìn)它的一種方法是在組件級別應(yīng)用更精細(xì)的代碼拆分。為了鼓勵這種實(shí)踐,我們將致力于開發(fā)更符合人體工程學(xué)的代碼拆分 API。
我們希望確保 Angular 開發(fā)人員正在利用 RxJS 的最新特性,并平滑過渡到框架的下一個主要版本。為此,我們將探索并記錄 v7 及更高版本的 RxJS 中更改的范圍,并計(jì)劃更新策略。
為了改進(jìn) Angular 和 Angular DevTools 的調(diào)試工具,我們將使用提供依賴注入運(yùn)行時訪問的 API。作為項(xiàng)目的一部分,我們將公開調(diào)試方法,這些方法允許我們探索注入器層次結(jié)構(gòu)以及跨關(guān)聯(lián)提供程序的依賴項(xiàng)。
作為本項(xiàng)目的一部分,我們想實(shí)現(xiàn)對 Angular CDK 拖放的混合方向支持。這是存儲庫中要求最高的特性之一。
為了改進(jìn) Angular 組件的封裝,我們啟用了綁定到組件實(shí)例的受保護(hù)成員的功能。這樣,你將不再需要將字段或方法公開為 public 來在模板中使用它。
開發(fā)并發(fā)布有關(guān)變更檢測的深入指南。開發(fā)用于 Angular 應(yīng)用程序性能分析的內(nèi)容。介紹變更檢測如何與 Zone.js 交互,并解釋它何時被觸發(fā)、如何分析其持續(xù)時間以及性能優(yōu)化的常見實(shí)踐。
在 2021 年第四季度,我們設(shè)計(jì)了一個為表單引入嚴(yán)格類型的解決方案,并在 2022 年第一季度,我們完成了相應(yīng)的評論請求。目前,我們正在實(shí)施具有自動遷移步驟的推出策略,這將支持對現(xiàn)有項(xiàng)目的改進(jìn)。我們會首先在 Google 的 2500 多個項(xiàng)目中測試此解決方案,以確保為外部社區(qū)提供順暢的遷移路徑。
在我們所有內(nèi)部工具向 Ivy 的轉(zhuǎn)換完成后,我們將移除舊的 View Engine,以減少 Angular 的概念開銷、獲得更小的包大小、更低的維護(hù)成本和更低的代碼庫復(fù)雜度。
為了簡化 Angular 心智模型和學(xué)習(xí)旅程,我們將努力使 NgModules 成為可選。這項(xiàng)工作允許開發(fā)人員開發(fā)獨(dú)立組件并實(shí)現(xiàn)另一種 API 來聲明組件的編譯范圍。我們通過在RFC中捕獲的高級設(shè)計(jì)討論來啟動這個項(xiàng)目。
我們將努力尋找一種方法,以具有最小向后不兼容影響的方式對響應(yīng)式表單實(shí)施更嚴(yán)格的類型檢查。通過這種方式,我們可以讓開發(fā)人員在開發(fā)期間發(fā)現(xiàn)更多問題,啟用更好的文本編輯器和 IDE 支持,并改進(jìn)響應(yīng)式表單的類型檢查。
為了改進(jìn) Angular DevTools 與框架的集成,我們正在努力將代碼庫移至angular/angular這個單一倉庫。這包括將 Angular DevTools 轉(zhuǎn)換為 Bazel,并將其集成到現(xiàn)有流程和 CI 管道中。
將 Angular 編譯器的診斷擴(kuò)展到類型檢查之外。引入其他正確性和一致性檢查,以進(jìn)一步保證正確性和最佳實(shí)踐。
為確保我們提供面向未來的 e2e 測試策略,我們希望評估 Protractor 的狀態(tài)、社區(qū)創(chuàng)新、e2e 最佳實(shí)踐,并探索新的機(jī)會。作為努力的第一步,我們共享了一個RFC,并與合作伙伴合作,以確保 Angular CLI 與用于 e2e 測試的最先進(jìn)工具之間的順利集成。下一步,我們需要最終確定建議并為過渡編譯資源列表。
在 2020 年初,我們共享了一個用于 Ivy 庫分發(fā)的RFC。在來自社區(qū)的寶貴反饋之后,我們開發(fā)了該項(xiàng)目的設(shè)計(jì)。我們現(xiàn)在正在投資開發(fā) Ivy 庫發(fā)行版,包括更新庫包格式以使用 Ivy 編譯、取消阻止 View Engine 庫格式的棄用以及?ngcc
?。
為了縮短測試時間并在測試之間創(chuàng)建更好的隔離,我們希望將?TestBed
?更改為在每次測試運(yùn)行后自動清理和拆除測試環(huán)境。
Internet Explorer 11 (IE11) 一直在阻止 Angular 利用 Web 平臺的一些現(xiàn)代特性。作為本項(xiàng)目的一部分,我們將棄用并刪除 IE11 支持,為常綠瀏覽器提供的現(xiàn)代特性打開道路。我們運(yùn)行了一個RFC來收集社區(qū)的反饋,并決定接下來的步驟。
支持現(xiàn)代瀏覽器讓我們可以利用 JavaScript 更緊湊、更具表現(xiàn)力和高性能的新語法。作為本項(xiàng)目的一部分,我們將調(diào)查哪些障礙是為了推進(jìn)這項(xiàng)工作,并采取措施啟用它。
我們正在開發(fā) Angular 的開發(fā)工具,它提供用于調(diào)試和性能分析的實(shí)用程序。該項(xiàng)目旨在幫助開發(fā)人員了解 Angular 應(yīng)用程序中的組件結(jié)構(gòu)和變更檢測。
我們希望在 Angular 的多個 GitHub 存儲庫(angular/angular 、 angular/angular-cli和angular/components)之間整合發(fā)布管理工具。這項(xiàng)工作讓我們可以復(fù)用基礎(chǔ)設(shè)施,統(tǒng)一和簡化流程,并提高我們發(fā)布流程的可靠性。
我們希望統(tǒng)一跨 Angular 存儲庫(angular/angular 、 angular/components 、 angular/angular-cli)的提交消息要求和一致性,以便為我們的開發(fā)過程帶來一致性并復(fù)用基礎(chǔ)設(shè)施工具。
該項(xiàng)目的目標(biāo)是通過將語言服務(wù)轉(zhuǎn)換為 Ivy 來改善體驗(yàn)并消除遺留依賴。今天,語言服務(wù)仍然使用 View Engine 編譯器和類型檢查,即使對于 Ivy 應(yīng)用程序也是如此。我們希望使用 Ivy 模板解析器和改進(jìn)的 Angular 語言服務(wù)類型檢查來匹配應(yīng)用程序行為。此次遷移也是朝著移除 View Engine 的方向邁出的一步,這將簡化 Angular,減少 npm 包大小,并提高框架的可維護(hù)性。
我們與 Google 的安全團(tuán)隊(duì)合作,增加了對新 Trusted Types API 的支持。此 Web 平臺 API 可幫助開發(fā)人員構(gòu)建更安全的 Web 應(yīng)用程序。
作為 v11 版本的一部分,我們在 Angular CLI 中引入了 webpack 5 的可選預(yù)覽。為確保穩(wěn)定性,我們將繼續(xù)迭代實(shí)現(xiàn)以實(shí)現(xiàn)構(gòu)建速度和包大小改進(jìn)。
加載外部樣式表是一個阻塞型操作,這意味著瀏覽器在加載所有引用的 CSS 之前無法開始渲染你的應(yīng)用程序。在頁面的標(biāo)題中擁有阻塞渲染的資源會顯著影響其加載性能,比如,它的首次內(nèi)容繪制。為了使應(yīng)用程序更快,我們一直在與 Google Chrome 團(tuán)隊(duì)合作內(nèi)聯(lián)關(guān)鍵 CSS 并異步加載其余樣式。
錯誤消息通常會帶來有限的行動指南來幫助開發(fā)人員解決它們。我們一直致力于通過添加相關(guān)代碼、開發(fā)指南和其他資料來使錯誤消息更易于發(fā)現(xiàn),以確保更順暢的調(diào)試體驗(yàn)。
我們將重新定義用戶學(xué)習(xí)旅程并刷新介紹性文檔。我們將清楚地說明 Angular 的好處,如何探索其功能并提供指導(dǎo),以便開發(fā)人員可以在盡可能短的時間內(nèi)精通該框架。
Angular CDK 在 Angular 9 中引入了組件測試工具的概念。測試工具能讓組件作者創(chuàng)建支持的 API 來測試組件交互。我們將繼續(xù)改進(jìn)此測試工具基礎(chǔ)架構(gòu),并闡明有關(guān)使用這些測試工具的最佳實(shí)踐。我們還在努力推動 Google 內(nèi)部更多地采用測試工具。
內(nèi)容投影是一個核心的 Angular 概念,但在文檔中卻沒有足夠的篇幅來講它。作為該項(xiàng)目的一部分,我們希望確定內(nèi)容投影的核心用例和概念并記錄它們。
隨著 TSLint 的棄用,我們將轉(zhuǎn)向 ESLint。作為該過程的一部分,我們將努力確保與我們當(dāng)前推薦的 TSLint 配置向后兼容,為現(xiàn)有 Angular 應(yīng)用程序?qū)嵤┻w移策略,并將新工具引入 Angular CLI 工具鏈。
我們正努力將高達(dá) 50% 的工程能力投入到分類問題和 PR 上,直到我們清楚了解更廣泛的社區(qū)需求。之后,我們將投入多達(dá) 20% 的工程能力,以便及時跟進(jìn)新提交的要求。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: