react的起源與發展
react起源于Facebook的內部項目,因為當初Facebook團隊對市場上的MVC框架都不滿意,其實,Facebook團隊自己并不認可MVC的開發模式,所以就自己內部的開發一套框架,開發出來以后覺得很好用,于是決定開源,開源時間于2013年開源。
react是什么?
引用官方的話,react是一個聲明式、高效且靈活的用于構建用戶應用界面的JavaScript庫。簡單的說:react是一個專注于視圖層的輕量級庫,專注于MVC框架中的V層。
react的組件化開發思想
react并不是一個完成的MVC框架,前面提到過,react專注于MVC當中的V層,react構建頁面UI的庫其實就是把一個完整的UI 界面分割成由很多個小組件合成的模塊,這些 組件經過代碼優化、嵌套、組合最終形成了一個完整的頁面。我們可以把頁面的任何一個區域都當成一個組件或者若干個組件,這些組件其實是一個聚合體或者若干個聚合體,聚合體包含了html、css、js、images等元素。
react的虛擬DOM
react與vue這兩套框架很相似,底層算法都是diff算法(不過在react的16.x.x的版本以后react就改用改了 Fiber 算法)。其實react為了避免我們開發人員頻繁的對真實的DOM節點進行操作,為此react引入了虛擬DOM的機制。在基于react的的開發中,所有的DOM渲染都是通過虛擬DOM進行的,每當數據發生變化時,react就會重新的構建虛擬DOM樹,然后虛擬DOM樹與上次一的虛擬DOM樹進行diff算法比對(16版本以后react的核心算法變成了Fiber),通過算法比對,得到了變化的DOM結構有什么區別,然后對有區別的DOM結構進行更新。這也是react高性能的體現,能夠減少頻繁的操作DOM節點。
面試官:
1.你覺得使用react開發有什么優勢?
(1)react開發的結構引用了虛擬DOM的機制,這代表極大的減少對真實的DOM進行一個頻繁的操作,從而提高性能。
(2)react開發的核心思想是組件化開發component,一個頁面我們可以化成由一個或者多個小組件組成的,使用組件化的模式開發能夠大大的提高開發效率。
2.react有什么特點?
(1)react底層對比虛擬DOM,這樣性能高。
(2)react開發思想是組件化開發,這樣開發效率高。
(3)react的單向數據流,單向數據流的核心內容是數據綁定,就是將服務端的數據向前端頁面綁定好,開發者只需要關注業務代碼就行。
(4)jsx語法。它是一種類似于html語法但又不是html語法。在react中,jsx語法是最基礎的,我們在render()函數里面,我們每寫一個div或者其他的html標簽,都會通過創建節點的方式createElement來創建的,這樣代碼的可讀性較低,不利于維護,為了減少這一頻繁的操作,就使用了jsx語法來解決這一類的問題。
3.虛擬DOM是一個什么東西?
(1)虛擬DOM 不是一個什么東西。。。。。。在react中定義了一套變量式的DOM模型。。變量式變量式變量式,重要的事情說三遍。我們可以把虛擬DOM當做一種以變量形式存在的內存對象,因為它是以變量的形式存在,消耗電腦的內存比較少,這也是虛擬dom能夠提高電腦性能的主要原因之一。