React 背景知識
React 是一個用于構建用戶界面的 JavaScript 庫,主要用于構建 UI,而不是一個 MVC 框架,但可以使用 React 作為 MVC 架構的 View 層輕易的在已有項目中使用,它是一個用于構建用戶界面的 JavaScript 庫,起源于 Facebook 的內(nèi)部項目,用來架設 Instagram 的網(wǎng)站,于 2013 年 5 月開源。React 擁有較高的性能,代碼邏輯非常簡單,越來越多的人已開始關注和使用它。
以前沒有 ajax 技術的時候,web 頁面從服務端整體渲染出 html 輸出到瀏覽器端進行渲染,同樣的,用戶的一個改變頁面的操作也會刷新整個頁面來完成。直到有了 ajax 出現(xiàn),實現(xiàn)頁面局部刷新,帶來的高效和分離讓 web 開發(fā)者們驚嘆不已。但隨之而來的問題是,復雜的用戶交互及展現(xiàn)需要通過大量的 DOM 操作來完成,這讓頁面的性能以及開發(fā)的效率又出現(xiàn)了新的瓶頸。
時至今日,談到前端性能優(yōu)化,減少 DOM 元素、減少 reflow 和 repaint、編碼過程中盡量減少 DOM 的查詢等手段是大家耳熟能詳?shù)?。而頁面任何UI的變化都是通過整體刷新來完成的。幸運的是,React 通過自己實現(xiàn)的 DOM Diff 算法,計算出虛擬頁面當前版本和新版本之間的差異,最小化重繪,避免不必要的 DOM 操作,解決了這兩個公認的前端性能瓶頸,實現(xiàn)高效 DOM 渲染。
我們知道,頻繁的操作 DOM 所帶來的性能消耗是很大的,而 React 之所以快,是因為它不直接操作 DOM,而是引進虛擬 DOM 的實現(xiàn)來解決這個問題
對于頁面的更新,React 通過自己實現(xiàn)的 DOM Diff 算法來進行差異對比、差異更新,反映到頁面上就是只重繪了更新的部分,從而提高渲染效率。
備注:以下性能闡述參考自尤雨溪。
對于 React 的性能方面,想啰嗦幾句:
1. React 從來沒有說過 “React 比原生操作 DOM 快”。React 的基本思維模式是每次有變動就整個重新渲染整個應用。如果沒有 Virtual DOM,簡單來講就是直接重置 innerHTML。
2. 在比較性能的時候,要分清楚初始渲染、小量數(shù)據(jù)更新、大量數(shù)據(jù)更新這些不同的場合。
3. 不要天真地以為 Virtual DOM 就是快,diff 不是免費的,Virtual DOM 真正的價值從來都不是性能,而是它
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26