react學習之路————react基礎知識
阿新 • • 發佈:2018-12-13
react基礎知識
1.什麼是pwa?
pwa=漸進式web應用
pwa的好處:實現類似於app的離線快取功能
react中的registerServiceWorker+manifest.json就是用來實現這個功能的
2.react定位
2.1 宣告式開發:面向資料(區別於jquery和原生js:面向過程)
* 比如造房子:react提供圖紙即可自動進行 ,jquery:需要明確每一步做什麼
2.2 單項資料流 : 為什麼要單向資料流?-----父元件向子元件傳遞值之後,子元件不允許修改父元件中的值,因為一旦修改所有用 到這個值得元素全部改變,不利於定位bug位置
2.3 檢視層框架
2.4 函數語言程式設計:面向測試的程式設計,如果都是函式的話很容易測試
3.虛擬dom是什麼?
以前我也百思不得其解虛擬dom到底是什麼?雖然知道有render函式,它是用一個數組來儲存標籤資訊的。
原來虛擬dom就是這個陣列。
虛擬dom的本質--------------js物件,如下:
* 虛擬DOM:['div',{id:'abc'},['span',{},'Hello World']]
* 真實DOM:`<div><span>Hello World</span></div>`
4.虛擬dom為什麼能夠提升效能?
前言:對真實DOM的操作極大耗費效能,而使用js物件來進行資料的比對,效能能得到優化
於是將資料的變化反應到虛擬dom上,更新之後再反應到真實dom上面
diff演算法:元件樹子上而下來進行比對,如果哪一個不同那麼後面的就無需比對直接替換掉了
5.react的宣告週期?
* initialization * mounting * componentWillMount:元件即將被掛載到頁面時執行(只執行1次) * render:頁面掛載 * componentDidMount:頁面掛載之後執行(只執行1次)---ajax請求 * updating * props * componentWillReceiveProps props改變比status改變前面多了一個,從父元件接收了引數,父元件render重新執行之後子元件則會執行 * shouldComponentUpdate(元件更新前,返回布林值,是否需要更新) * componentWillUpdate * render * componentDidUpdate * componentWillUnmount