1. 程式人生 > >《深入React技術棧》個人總結(打卡一)

《深入React技術棧》個人總結(打卡一)

雖說已經在用React寫了些專案,起初剛開始的時候並不喜歡react框架(之前是用vue的),到了後面才發現React的好處,深深陷進去了,所以買了本書《深入React技術棧》,細細解讀這款框架的魅力

今天閱讀了第一章節兩小節

1.1.1 React的簡介

react與angular等框架不同,並不是完整的MVC/MVVM框架。它更專注於view層的解決方案,也是一個包括View和Controller的庫。對於複雜的應用,可以根據應用的場景自行選擇業務層的框架,並需要搭配Flux,Redux,GraphQL/Relay來使用。

1.1.2Virtual DOM

React把真實的DOM樹轉換成javascript物件樹,也就是Virtual DOM(虛擬DOM),每次資料更新後,重新計算Virtual DOM,並和上一次生成的Virtual DOM做對比,對發生變化的部分做批量更新。React也提供了直觀的shouldComponentUpdate生命週期回撥,來減少資料改變之後的不必要的Virtual DOM對比的過程,以保證效能。,它最大的好處還在於方便和其他平臺的整合,如react-native是基於Virtual DOM的原生控制元件,因為React元件可以對映為對應的原生控制元件。

1.1.3函數語言程式設計

React把過去不斷重複構建UI的過程抽象成元件,且在給定引數的情況下約定渲染對應的UI介面。React能充分利用很多函式式的方法去減少冗長的程式碼。函數語言程式設計是React的精髓。

1.2 JSX語法

React為了方便View層元件化,承載了構建HTML結構化頁面的職責。從這點看,React與其它的javascript模版語言有著許多異曲同工之處,但是不同之處在於React是通過建立與更新虛擬元素(Virtual  element)來管理整個Virtual DOM的。

其中虛擬元素可以理解為真實元素的對應,它的構建與更新都是在記憶體中完成的,並不會真正的渲染到DOM中去。React中建立的虛擬元素可以分為DOM元素以及元件元素,分別對應著原生的DOM元素與自定義元素。

DOM元素包括了元素的型別和屬性。如果轉換成JSON物件,那麼依然包括元素的型別以及屬性。

JSX將HTML語法直接加入到javascript程式碼中,在通過編譯器轉換到純javascript後由瀏覽器執行。

1.2.2基本語法

包括兩大塊

一:XML基本語法

1.定義標籤時,只允許被一個標籤包裹

2.標籤一定要閉合

二:元素型別

1.DOM元素

2.元件元素

注意:元素是由標籤,型別以及屬性所構成