国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

這5篇文章將使你成為一個Angular Change Detection專家。

Coly / 2235人閱讀

摘要:編寫工作首先介紹了一個稱為的內部組件表示,并解釋了變更檢測過程在視圖上運行。本文主要由兩部分組成第一部分探討錯誤產生的原因,第二部分提出可能的修正。它對我意義重大,它能幫助其他人看到這篇文章。

在過去的8個月里,我大部分空閑時間都是reverse-engineering Angular。我最感興趣的話題是變化檢測。我認為它是框架中最重要的部分,因為它負責像DOM更新、輸入綁定和查詢列表更新這樣的“可視”工作。我的探索產生了一系列深入的文章,突出了變化檢測機制的主要思想,深入了解它的實現細節。在這篇文章中,我把它們放在一起,簡短地描述了每一個你能找到什么。一旦你讀完它們,你將獲得變化檢測啟發?。

理解變化檢測

下面是5篇深入研究的文章,它們將極大的擴展你所知道的Angular變化檢測過程的范圍。每篇文章建立在前一個解釋的信息基礎上,所以我建議你按照他們在這里列出的順序閱讀它們。

Angular’s $digest is reborn in the newer version of Angular

這篇文章把AngularJS的digest過程和Angular的變化檢測進行了對比。它解釋了對兩者的需求,并說明如何使用相同的臟檢查概念來構建它們。然后提供了一些例子,論證了Angular的生命周期鉤子如何作為相同的機制在AngularJS的$watch中進行使用。它還表明了Angular現在所謂的從上到下的單項數據流不同于AngularJS 。文章解釋了這個強制執行背后的原因以及它對架構的好處和限制。本文將對那些正尋找遷移到Angular有AngularJS經驗的開發者是非常有用的。

Do you still think that NgZone (zone.js) is required for change detection in Angular?

這篇文章描述了NgZone是如何在zone.js這個庫上實施的以及NgZone 在這個框架上扮演的角色。與通常的觀點相反,它不是變化檢測過程的一部分,而是用來觸發它的。文章首先說明Angular可以檢測變化進行渲染,沒有ngzone和zone.js,進而說明NgZone帶來的價值以及它如何實現的。文章的大部分內容是解釋常用的公共API如isStable, onUnstableonMicrotaskEmpty。文章最后解釋了當使用第三方庫的時候比如GoogleAPI一些常見的不會被檢測到的變化陷阱。

Everything you need to know about change detection in Angular

如果您想深入了解變更檢測機制,這篇文章是必讀的。它提供了如何使用相關鏈接進行進一步探索的高級概述。編寫工作首先介紹了一個稱為View的內部組件表示,并解釋了變更檢測過程在視圖上運行。然后,它列出了在執行順序的變化檢測期間執行的所有操作的列表。這些操作包括更新視圖狀態、渲染、處理輸入綁定和調用生命周期鉤子。最后它解釋了ChangeDetectorRef 公共的API如detach, detectChangesmarkForCheck以及提供了方法用法的簡短示例。

The mechanics of DOM updates in Angular

本文深入探討了與DOM的同步應用模型中的實現細節,即單向數據綁定或DOM渲染。此操作在變更檢測過程中占據中心位置,因為它正是使組件在DOM渲染中呈現變化的原因。本文首先介紹了關于View(視圖)概念的附加細節,特別是View Factory (視圖工廠)和幾個基本類型的View Nodes(視圖節點)。然后,它展示了變更檢測機制如何通過對這些節點進行插值或輸入綁定來執行DOM更新設置。

The mechanics of property bindings update in Angular

與前面關于DOM更新的文章類似,這篇文章探討了負責更新子組件和指令的輸入綁定的過程的實現細節。它引入了綁定定義的概念及其在變化檢測過程中的作用。然后,它將演示編譯器在處理屬性綁定的模板語法時,如何生成這些綁定定義。最后,它概述了在視圖節點上運行變化檢測和更新子組件和指令的輸入屬性的一個循序漸進的過程。

避免常見的困惑

這里是另外一些有價值的文章列表,可以解釋我在stackoverflow經常看到的關于變化檢測的一些困惑。

Do you really know what unidirectional data flow means in Angular

本文解釋雙向數據綁定和單向數據流之間的區別。它演示了在Angular和AngularJS 中更新輸入綁定的過程是如何不同的,以及這種差異是如何重要的。

Everything you need to know about the ExpressionChangedAfterItHasBeenCheckedError error

這篇文章解釋了Angular社區頻繁和經常被誤解的錯誤背后的原因和機制。雖然有些開發人員認為它是一個bug,但實際上這是一個設計決策,通過將變更檢測運行限制為單個運行,而不是AngularJS中的多次運行($digest runs),從而提高性能。本文解釋了如何拋出錯誤有助于防止模型數據和UI之間的不一致,從而將錯誤或舊數據顯示給頁面上的用戶。本文主要由兩部分組成:第一部分探討錯誤產生的原因,第二部分提出可能的修正。它還解釋了為什么不在生產模式中拋出錯誤。

If you think ngDoCheck means your component is being checked

本文對于為什么使用OnPush策略組件的ngDoCheck周期鉤子被引發即使對這些組件的輸入綁定沒有改變提供了一個詳細的回答。它解釋了通常未預料到的事實:當父組件被選中時,鉤子會觸發子組件,并顯示該機制是如何觸發ngDoCheck的,即使看起來沒有理由這樣做。文章的第二部分通過演示幾個用例回答了我們需要ngDoCheck的問題。

The essential difference between Constructor and ngOnInit in Angular

關于在stackoverflow有超過10萬看法的最受歡迎的Angular問題,本文提供了一個詳細的回答,那就是構造函數和ngOnInit之間的差異。本文給出了一個全面的比較,突出了用法上的差異,并對組件初始化過程進行了分析。

Angular Air 上有趣的插曲

我還強烈推薦觀看Angular Air episode,我在這里討論視圖層的內部表示和更改檢測渲染部分。我也揭示了zones 和使用ChangeDetectorRef變化檢測手動控制相關的一些常見的誤解

關于Angular內幕的實物書

我開始寫一本關于Angular內幕的綜合書。它將被稱為“Angular內幕,框架結構的最終指南”,并將對編譯器、視圖、DI和更改檢測機制如何在引擎蓋下工作進行深入的解釋。我還計劃在調試或優化工作時,包含一些真實的示例,說明在虛擬機引導下實現的知識可能會有什么幫助。這本書大約有150到200頁長,有很多圖表便于理解材料。如果你感興趣的話,你會買一本關于Angular內幕的書嗎?文章提供了更多關于這本書的信息,并包含一個訂閱表格,你可以用它告訴我你有興趣買這本書。

感謝您的閱讀! 如果喜歡這篇文章, 請點贊。 它對我意義重大,它能幫助其他人看到這篇文章。 對于更高級的文章,你可以在Twitter或Medium上跟隨我。

參考資源

These 5 articles will make you an Angular Change Detection expert

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/90271.html

相關文章

  • Change Detection系列一】$digest 在Angular新版本中重生

    摘要:感謝您的閱讀如果喜歡這篇文章請點贊。它對我意義重大,它能幫助其他人看到這篇文章。對于更高級的文章,你可以在或上跟隨我。 I’ve worked with Angular.js for a few years and despite the widespread criticism I think this is a fantastic framework. I’ve started w...

    legendaryedu 評論0 收藏0
  • [譯] $digest 在 Angular 中重生

    摘要:但如果一個組件在生命周期鉤子里改變父組件屬性,卻是可以的,因為這個鉤子函數是在更新父組件屬性變化之前調用的注即第步,在第步之前調用。 原文鏈接:Angular.js’ $digest is reborn in the newer version of Angular showImg(https://segmentfault.com/img/remote/146000001468785...

    incredible 評論0 收藏0
  • Angular系列之變化檢測(Change Detection)

    摘要:單向數據流向保證了高效可預測的變化檢測。變化檢測策略有兩種變化檢測策略。另一種更加高效的變化檢測方式。策略,就是只有當輸入數據即的引用發生變化或者有事件觸發時,組件才進行變化檢測。 概述 簡單來說變化檢測就是Angular用來檢測視圖與模型之間綁定的值是否發生了改變,當檢測到模型中綁定的值發生改變時,則同步到視圖上,反之,當檢測到視圖上綁定的值發生改變時,則回調對應的綁定函數。 什么情...

    XGBCCC 評論0 收藏0
  • Angular 2.x+ 臟檢查機制理解

    摘要:策略減少檢測次數當輸入屬性不變時,可以跳過整個變更檢測子樹?,F在當執行更改檢測時,它將從上到下進行。并且一旦更改檢測運行結束,它將恢復整個樹的狀態。 Angular 2.x+ 臟檢查機制理解 目前幾種主流的前端框架都已經實現雙向綁定特性,但實現的方法各有不同: 發布者-訂閱者模式(backbone.js) 臟值檢查(angular.js) 數據劫持 + 發布者-訂閱者模式(vue.j...

    W4n9Hu1 評論0 收藏0
  • [譯] 關于 `ExpressionChangedAfterItHasBeenCheckedErro

    摘要:本文將解釋引起這個錯誤的內在原因,檢測機制的內部原理,提供導致這個錯誤的共同行為,并給出修復這個錯誤的解決方案。這一次過程稱為。這個程序設計為子組件拋出一個事件,而父組件監聽這個事件,而這個事件會引起父組件屬性值發生改變。 原文鏈接:Everything you need to know about the ExpressionChangedAfterItHasBeenCheckedE...

    andong777 評論0 收藏0

發表評論

0條評論

Coly

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<