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