在react中,element是最小的構(gòu)建單元,是一個(gè)對(duì)象,不是DOM;element可以在代碼中使用jsx進(jìn)行定義,語(yǔ)法為“const element =…”;Element被創(chuàng)建之后是不可以被改變的,如果要改變DOM只能新創(chuàng)建一個(gè)Element。
本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。
react element是什么
Element
1.Element是react中最小的構(gòu)建單元,是一個(gè)對(duì)象不是DOM,創(chuàng)建的代價(jià)比較低。
(1)通常我們?cè)诖a中使用JSX定義一個(gè)Element:
const element = <h1>Hello, world</h1>;
(2)使用ReactDOM.render來(lái)渲染
ReactDOM.render( element, document.getElementById('root') );
2.一旦一個(gè)Element被創(chuàng)建之后,是不可被改變的,它就像電影中的幀,如果要改變DOM的顯示,只能新創(chuàng)建一個(gè)Element。
3.React會(huì)比較前后兩個(gè)Element,只更新需要更新的內(nèi)容。
擴(kuò)展知識(shí):
虛擬DOM
1.React并不是直接構(gòu)建DOM元素的,而是通過(guò)創(chuàng)建與DOM結(jié)構(gòu)類(lèi)似的對(duì)象。然后根據(jù)這個(gè)結(jié)構(gòu),也就是React DOM來(lái)渲染真正的DOM。
2.當(dāng)有改變的時(shí)候,新建對(duì)象,然后使之與之前的結(jié)構(gòu)對(duì)比,記錄下兩者的差異,這里可以看下diff算法。
3.然后根據(jù)記錄的差異更新DOM。
ReactElement
1、虛擬'DOM';
2、本質(zhì)是一個(gè)不可變的對(duì)象;
type屬性:如果是字符串如'h1',表示一個(gè)DOM節(jié)點(diǎn),它的props屬性對(duì)于DOM節(jié)點(diǎn)的屬性.若type屬性是一個(gè)表示組件的
函數(shù)或者類(lèi)時(shí),它表示一個(gè)組件;
3、兩種類(lèi)型的ReactElement可以相互嵌套,彼此混合描述DOM樹(shù);
【