站長資訊網
        最全最豐富的資訊網站

        Angular學習之淺析Ivy編譯器中的增量DOM

        本篇文章進行來學習Angular框架,帶大家了解一下Ivy編譯器中的增量DOM,希望對大家有所幫助!

        Angular學習之淺析Ivy編譯器中的增量DOM

        作為“為大型前端項目”而設計的前端框架,Angular 其實有許多值得參考和學習的設計,本系列主要用于研究這些設計和功能的實現原理。本文圍繞 Angular 的核心功能 Ivy 編譯器,介紹其中的增量 DOM 設計。【相關教程推薦:《angular教程》】

        在介紹前端框架的時候,我常常會介紹到模板引擎。對于模板引擎的渲染過程,像 Vue/React 這樣的框架里,使用了虛擬 DOM 這樣的設計。

        在 Angular Ivy 編譯器中,并沒有使用虛擬 DOM,而且使用了增量 DOM。

        增量 DOM

        在 Ivy 編譯器里,模板編譯后的產物與 View Engine 不一樣了,這是為了支持單獨編譯、增量編譯等能力。

        比如,<span>My name is {{name}}</span>這句模板代碼,在 Ivy 編譯器中編譯后的代碼大概長這個樣子:

        // create mode if (rf & RenderFlags.Create) {   elementStart(0, "span");   text(1);   elementEnd(); } // update mode if (rf & RenderFlags.Update) {   textBinding(1, interpolation1("My name is", ctx.name)); }

        可以看到,相比于 View Engine 中的elementDef(0,null,null,1,'span',...),elementStart()elementEnd()這些 API 顯得更加清爽,它們使用的便是增量 DOM 的設計。

        增量 DOM vs 虛擬 DOM

        虛擬 DOM 想必大家都已經有所了解,它的核心計算過程包括:

        • 用 JavaScript 對象模擬 DOM 樹,得到一棵虛擬 DOM 樹。

        • 當頁面數據變更時,生成新的虛擬 DOM 樹,比較新舊兩棵虛擬 DOM 樹的差異。

        • 把差異應用到真正的 DOM 樹上。

        雖然虛擬 DOM 解決了頁面被頻繁更新和渲染帶來的性能問題,但傳統虛擬 DOM 依然有以下性能瓶頸:

        • 在單個組件內部依然需要遍歷該組件的整個虛擬 DOM 樹
        • 在一些組件整個模版內只有少量動態節點的情況下,這些遍歷都是性能的浪費
        • 遞歸遍歷和更新邏輯容易導致 UI 渲染被阻塞,用戶體驗下降

        針對這些情況,React 和 Vue 等框架也有

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲欧美精品一区久久中文字幕| 中文无码精品一区二区三区| 老司机午夜网站国内精品久久久久久久久| 国产精品亚洲一区二区三区在线| 日本精品夜色视频一区二区| 91久久精品国产91性色也| 亚洲线精品一区二区三区影音先锋| 亚洲永久永久永久永久永久精品 | 青草青草久热精品视频在线网站 | 亚洲综合精品网站在线观看| 国产精品综合专区中文字幕免费播放 | 人人妻人人澡人人爽人人精品 | 97久久超碰国产精品旧版| 合区精品中文字幕| 久久精品综合一区二区三区| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 精品国偷自产在线视频| 97精品国产高清自在线看超| 国产91精品在线观看| 色婷婷在线精品国自产拍| 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 国产精品无码AV一区二区三区| 亚洲精品无码AV中文字幕电影网站| 国产乱子伦精品无码专区| 国产69精品久久久久9999| 欧美精品1区2区| 国产精品久久久久久久久| 久久国产精品99精品国产| 欧美午夜精品久久久久免费视| 亚洲国产第一站精品蜜芽| 亚洲综合精品香蕉久久网| 亚洲精品国精品久久99热| 亚洲AV无码之日韩精品| 香蕉99久久国产综合精品宅男自| 拍国产真实乱人偷精品| 久久综合精品国产一区二区三区| 久久久这里有精品中文字幕| 日韩精品一区二区三区在线观看| 在线精品亚洲| 欧洲成人午夜精品无码区久久| 国产三级久久久精品麻豆三级|