W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
Angular DevTools 是一個(gè)瀏覽器擴(kuò)展,為 Angular 應(yīng)用程序提供調(diào)試和剖析功能。Angular DevTools 支持 Angular v12 及更高版本。
你可以在 Chrome 網(wǎng)上應(yīng)用店和 Firefox Addons 中找到 Angular DevTools。
安裝 Angular DevTools 后,在瀏覽器 DevTools 的 Angular 選項(xiàng)卡下找到擴(kuò)展。
打開擴(kuò)展程序時(shí),你還會看到另外兩個(gè)選項(xiàng)卡:
選項(xiàng)卡 |
詳細(xì)信息 |
---|---|
組件 |
允許你瀏覽應(yīng)用程序中的組件和指令并預(yù)覽或編輯它們的狀態(tài)。 |
環(huán)境配置器 |
讓你分析你的應(yīng)用程序并了解變更檢測執(zhí)行期間的性能瓶頸是什么。 |
在 Angular DevTools 的右上角,你將找到頁面上正在運(yùn)行哪個(gè)版本的 Angular 以及該擴(kuò)展的最后一次提交的哈希串。
在 GitHub 上報(bào)告問題和特性請求。
要報(bào)告 Profiler 的問題,請通過單擊 Save Profile(保存配置文件) 按鈕導(dǎo)出 Profiler 記錄,然后將該導(dǎo)出內(nèi)容作為該問題的附件。
請確保 Profiler 記錄中不包含任何機(jī)密信息。
Components 選項(xiàng)卡使你可以瀏覽應(yīng)用程序的結(jié)構(gòu)。你可以可視化并檢查組件和指令實(shí)例,并預(yù)覽或修改它們的狀態(tài)。在接下來的兩節(jié)中,我們將研究如何有效使用此選項(xiàng)卡來調(diào)試應(yīng)用程序。
在前面的屏幕截圖中,你可以看到應(yīng)用程序的組件樹。
組件樹顯示應(yīng)用程序中組件和指令之間的層次關(guān)系。選擇組件或指令實(shí)例時(shí),Angular DevTools 會提供有關(guān)該實(shí)例的其他信息。
單擊組件瀏覽器中的各個(gè)組件或指令,以選擇它們并預(yù)覽其屬性。Angular DevTools 在組件樹的右側(cè)顯示其屬性和元數(shù)據(jù)。
可以使用鼠標(biāo)或下列鍵盤快捷鍵在組件樹中導(dǎo)航:
鍵盤快捷方式 |
詳細(xì)信息 |
---|---|
向上和向下箭頭 |
選擇上一個(gè)和下一個(gè)節(jié)點(diǎn) |
左右箭頭 |
折疊和展開節(jié)點(diǎn) |
要通過名稱查找組件或指令,請使用組件樹上方的搜索框。要導(dǎo)航至下一個(gè)搜索匹配項(xiàng),請按 Enter
。要導(dǎo)航至上一個(gè)搜索匹配項(xiàng),請按 Shift + Enter
。
要轉(zhuǎn)到特定組件或指令的宿主元素,請?jiān)诮M件瀏覽器中找到它,然后雙擊它。瀏覽器的 DevTools 將在 Chrome 或 Firefox 的審查器中打開 “Elements” 選項(xiàng)卡,然后選擇關(guān)聯(lián)的 DOM 節(jié)點(diǎn)。
對于組件,Angular DevTools 還允許你導(dǎo)航到源碼選項(xiàng)卡中的組件定義。選擇特定組件后,單擊屬性視圖右上角的圖標(biāo):
與瀏覽器的 DevTools 一樣,屬性視圖可讓你編輯輸入屬性、輸出屬性或其他屬性的值。右鍵單擊屬性值。如果此值類型可使用編輯功能,則將看到一個(gè)文本輸入框。鍵入新值,然后按 Enter 鍵。
作為控制臺中的快捷方式,Angular DevTools 可以讓你訪問最近選擇的組件或指令的實(shí)例。鍵入 ?$ng0
? 以獲取對當(dāng)前所選組件或指令的實(shí)例的引用,鍵入 ?$ng1
? 來獲取前一個(gè)選擇的實(shí)例。
與瀏覽器的 DevTools 相似,你可以檢查頁面以選擇特定的組件或指令。單擊 DevTools 中左上角的 Inspect element(審查元素)圖標(biāo),然后將鼠標(biāo)懸停在頁面上的 DOM 元素上。該擴(kuò)展可以識別關(guān)聯(lián)的指令和/或組件,并允許你在組件樹中選擇相應(yīng)的元素。
Profiler 選項(xiàng)卡使你可以預(yù)覽 Angular 變更檢測的執(zhí)行。
通過 Profiler,你可以開始進(jìn)行剖析或?qū)氍F(xiàn)有的剖析記錄文件。要開始對應(yīng)用程序進(jìn)行性能剖析,請將鼠標(biāo)懸停在 Profiler 選項(xiàng)卡內(nèi)左上角的圓圈上,然后點(diǎn)擊 Start recording。
在剖析過程中,Angular DevTools 會捕獲執(zhí)行過的事件,比如變更檢測和生命周期鉤子。要完成錄制,請?jiān)俅螁螕裟莻€(gè)圓圈以 Stop recording。
你也可以導(dǎo)入現(xiàn)有剖析記錄。
在下面的屏幕截圖中,可以在完成錄制后找到 Profiler 的默認(rèn)視圖。
在此視圖的頂部附近,你可以看到一系列條形圖,每個(gè)條形圖表示應(yīng)用程序中的變更檢測周期。豎線越高,應(yīng)用程序在此周期中花費(fèi)的時(shí)間越長。選擇條形圖時(shí),DevTools 會渲染一個(gè)條形圖,其中包含在此循環(huán)中捕獲的所有組件和指令。
在變更檢測時(shí)間軸前面,你可以發(fā)現(xiàn) Angular 在此周期中花費(fèi)了多少時(shí)間。Angular DevTools 會試圖估算出掉幀情況,以指示應(yīng)用程序的執(zhí)行何時(shí)可能會影響用戶體驗(yàn)。
Angular DevTools 還會指出觸發(fā)這次變更檢測的原因(即變更檢測的來源)。
單擊條形圖時(shí),你會發(fā)現(xiàn)有關(guān)應(yīng)用程序在特定指令或組件上花費(fèi)了多少時(shí)間的詳細(xì)視圖:
這張圖展示了 NgForOf 指令花費(fèi)的總時(shí)間,以及其中調(diào)用了哪個(gè)方法。它還展示了所選指令的父級層次。
你也可以在類似火焰圖的視圖中預(yù)覽變更檢測的執(zhí)行情況。該圖形中的每個(gè)圖塊代表屏幕上渲染樹中位于特定位置的元素。
比如,如果在組件樹中特定位置的一個(gè)變更檢測周期中,我們原本有一個(gè) ?ComponentA
?,然后該組件被刪除,而在它的位置上,Angular 再渲染出 ?ComponentB
?,這樣你就會在同一圖塊上看到兩個(gè)組件。
每個(gè)圖塊的顏色取決于 Angular 在這里花費(fèi)了多少時(shí)間。DevTools 通過相對于我們花費(fèi)最多時(shí)間進(jìn)行變更檢測的圖塊所花費(fèi)的時(shí)間來確定顏色的深淺。
單擊某個(gè)圖塊時(shí),你會在右側(cè)面板中看到關(guān)于該圖塊的詳細(xì)信息。雙擊圖塊將其放大,以便你可以預(yù)覽嵌套的子級圖塊。
要預(yù)覽 Angular 進(jìn)行變更檢測的組件,請選擇火焰圖上方頂部的 Change detection 復(fù)選框。
此視圖將把所有在 Angular 中執(zhí)行過變更檢測的圖塊顯示為綠色,其余顯示為灰色:
單擊已記錄的性能剖析會話左上角的 Save Profile 按鈕,以將其導(dǎo)出為 JSON 文件并將其保存到磁盤。然后,你可以通過單擊 Choose file 輸入框來將此文件導(dǎo)入到剖析器的初始視圖中:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: