什麼是虛擬dom( virtual document object model )
dom的本質:就是用js表示ui的元素,dom是由瀏覽器中的js提供功能,所以我們只能人為的使用 瀏覽器提供的固定的api來操作dom物件
虛擬dom:並不是由瀏覽器提供,而是程式設計師手動模擬實現的,類似於瀏覽器中的dom
diff演算法
使用reactdom把元素渲染到頁面指定的容器中
jsx語法
類元件跟函式元件有什麼區別
(this,生命週期,是否有狀態)
函式元件的效能比類元件的效能要高,因為類元件使用時候要例項化,而函式元件直接執行函式取返回結果即可
props和state區別
state是元件自己管理資料,控制自己的狀態,可變
props是外部傳入的資料引數,不可變
沒有state的叫做無狀態元件,有state的叫做有狀態元件
如何使用refs
refs是使用react.createref()建立,並通過ref屬性附加到react元素
this.myref = react.createref()
ref =
export defaultconstructor(props)
componentdidmount()
render() />
) }
}
什麼是高階元件(hoc)
接受乙個元件並返回乙個新元件的函式
**重用、
渲染劫持
state抽象和操作
props處理
什麼是jsx
jsx**本身不能被瀏覽器讀取,必須使用babel和webpack等工具將其轉成傳統的js
codessandbox:
元件或者程式從建立到銷毀的過程,我們可以在過程中間基於鉤子函式完成一些自己的操作(例如:在第一次渲染完成做什麼,或者在二次即將重新渲染之前做什麼等...)
[基本流程]
constructor 建立乙個元件
componentwillmount 第一次渲染之前
render 第一次渲染
componentdidmount 第一次渲染之後
[修改流程:當元件的狀態資料發生改變(set-state)或者傳遞給元件的屬性發生改變(重新呼叫元件傳遞不同的屬性)都會引發render重新執行渲染(渲染也是差異渲染)]
shouldcomponentupdate 是否允許元件重新渲染(允許則執行後面函式,不允許直接結束即可)
componentwillupdate 重現渲染之前
render 第二次及以後重新渲染
componentdidupdate 重現渲染之後
componentwillreceiveprops:父元件把傳遞給子元件的屬性發生改變後觸發的鉤子函式
[解除安裝:原有渲染的內容是不消失的,只不過以後不能基於資料改變檢視了(定時器,事件解綁)]
componentwillunmount:解除安裝元件之前
codessandbox:
元件或者程式從建立到銷毀的過程,我們可以在過程中間基於鉤子函式完成一些自己的操作(例如:在第一次渲染完成做什麼,或者在二次即將重新渲染之前做什麼等...)
[基本流程]
constructor 建立乙個元件
componentwillmount 第一次渲染之前
render 第一次渲染
componentdidmount 第一次渲染之後
[修改流程:當元件的狀態資料發生改變(set-state)或者傳遞給元件的屬性發生改變(重新呼叫元件傳遞不同的屬性)都會引發render重新執行渲染(渲染也是差異渲染)]
shouldcomponentupdate 是否允許元件重新渲染(允許則執行後面函式,不允許直接結束即可)
componentwillupdate 重現渲染之前
render 第二次及以後重新渲染
componentdidupdate 重現渲染之後
componentwillreceiveprops:父元件把傳遞給子元件的屬性發生改變後觸發的鉤子函式
[解除安裝:原有渲染的內容是不消失的,只不過以後不能基於資料改變檢視了(定時器,事件解綁)]
componentwillunmount:解除安裝元件之前
React 生命週期 生命週期方法
生命週期 掛載 更新 解除安裝 元件被建立 執行初始化 並被掛載到dom中,完成元件的第一次渲染 constructor props getderivedstatefromprops props,state render componentdidmount 元件被建立時會首先呼叫元件的構造方法,接受...
react 生命週期
首次例項化 例項化完成後的更新 元件已存在時的狀態改變 生命週期共提供了10個不同的api。1.getdefaultprops 作用於元件類,只呼叫一次,返回物件用於設定預設的props,對於引用值,會在例項中共享。2.getinitialstate 作用於元件的例項,在例項建立時呼叫一次,用於初始...
react生命週期
盜圖一張 第一次進入頁面列印結果 1 parent constructor 2 parent conponentwillmount 3 parent render 4 initial render constructor 5 componentwillmount 6 render 7 compone...