將元素渲染到 dom 中
更新元素渲染
元素是構成 react 應用的最小單位,它用於描述螢幕上輸出的內容。
const element = ;
與瀏覽器的 dom 元素不同,react 當中的元素事實上是普通的物件,
reactdom
可以確保瀏覽器 dom 的資料內容與 react 元素保持一致。
首先我們在乙個 html 頁面中新增乙個id="example"
的
:
在此div中的所有內容都將由
reactdom
來管理,所以我們將其稱為 "根" dom節點。
我們用 react 開發應用時一般只會定義乙個根節點。但如果你是在乙個已有的專案當中引入 react 的話,你可能會需要在不同的部分單獨定義 react 根節點。
要將react元素渲染到根dom節點中,我們通過把它們都傳遞給
reactdom.render()
的方法來將其渲染到頁面上:
const element = ;
reactdom.render(
element,
document.getelementbyid('example')
);
react 元素都是不可變的。當元素被建立之後,你是無法改變其內容或屬性的。
目前更新介面的唯一辦法是建立乙個新的元素,然後將它傳入
reactdom.render()
方法:
來看一下這個計時器的例子:
function tick()
setinterval(tick, 1000);
以上例項通過 setinterval() 方法,每秒鐘呼叫一次 reactdom.render()。
從這裡就可以看出react渲染能力的強大。在傳統頁面的dom渲染中,往往會將新的dom替換掉舊的dom結構。react通過強大的dom diff演算法跳過已經存在的dom而渲染那些發生改變的dom中的改變的內容。也就是說
react dom 首先會比較元素內容先後的不同,而在渲染過程中只會更新改變了的部分。
具體效果我們可以檢視下面的動態圖
另外,我們可以將要展示的部分封裝
起來,以下例項用乙個函式來表示:
function clock(props)
function tick()
setinterval(tick, 1000);
除了函式外我們還可以建立乙個
react.component
的 es6 類,該類封裝了要展示的元素
。
class clock extends react.component
}function tick()
setinterval(tick, 1000);
需要注意的是,
改版之後的寫法需要注意一下兩點: 在
render()
方法中使用es6類的寫法時,需要用
this.props.屬性名
來取值。
可以多從
props
來傳值,在
reactdom.render
定義屬性,傳給呼叫方法,再在呼叫的es6類的呼叫中用
props.屬性名
直接賦值過去。
class name extends react.component
}class *** extends react.component
}class age extends react.component
} return (
);}//多個屬性的傳入注意不用逗號或分號隔開而是空格符隔開
reactdom.render(
document.getelementbyid('example')
);
WPF學習系列003 2 2 元素和特性
2.2 元素和特性 在 xaml 中定義乙個 xml元素 叫作物件元素 與在 net 中例項化乙個對應的物件 總是使用預設的建構函式 是等價的。xaml 元素 net 物件設定物件元素的乙個特性 attribute 與設定乙個同名屬性 property attribute 稱為屬性特性 或者為乙個同...
CSS學習筆記 六 元素定位
盒模型,就是瀏覽器為頁面中的每個 html 元素生成的矩形盒子。這些盒子們都要按照可見版式模型 visual formatting model 在頁面上排布。可見的頁面版式主要由三個屬性控制 position 屬性 display 屬性和 float 屬性。其中,position 屬性控制頁面上元素...
HTML CSS基礎學習筆記1 33 元素選擇器
元素選擇器 最常見的 css 選擇器是元素選擇器。換句話說,文件的元素就是最基本的選擇器 p什麼情況下使用元素選擇器,一般我們這樣認為 如果你想要讓頁面中所有的指定元素都有這個css效果,可以使用元素選擇器。有這樣一段html 撐著油紙傘,獨自 彷徨在悠長,悠長 又寂寥的雨巷,我希望逢著 乙個丁香一...