手機(jī)也能上課
1/6
ReactDOM.render
上節(jié)提到,DOM 元素是根據(jù) React 元素進(jìn)行渲染的,那么問題來了:如何按照預(yù)期,將一個(gè)指定的 React 元素渲染到頁面的指定地方呢?
了解一下 react-dom.js
所提供的頂層 API ReactDOM.render()
:
ReactDOM.render(element, container [, callback])
API 解析:
- 作用:
- 在指定的 DOM 節(jié)點(diǎn)(container)里渲染一個(gè) React 元素(element);
- 如果在 container 里已經(jīng)渲染過 React 元素,
ReactDOM.render()
方法將對(duì)其執(zhí)行更新操作,并且會(huì)比較前后兩次的差異,僅在必要的地方更新 DOM;
- 參數(shù):
- element:需要渲染的 React 元素;
- container:在提供的 container 里渲染 React 元素;
- callback:可選的回調(diào)函數(shù),在 React 元素渲染完成或更新完成后執(zhí)行;
- 不得不了解的小細(xì)節(jié):
ReactDOM.render()
方法不會(huì)修改 container 容器節(jié)點(diǎn),只會(huì)修改容器的子節(jié)點(diǎn);- 調(diào)用
ReactDOM.render()
方法后,容器節(jié)點(diǎn)里的所有內(nèi)容都將由 React DOM 管理:- 首次調(diào)用時(shí),容器節(jié)點(diǎn)里的所用 DOM 元素都會(huì)被替換;
- 后續(xù)調(diào)用時(shí),會(huì)使用 React 的 DOM 差分算法(DOM Diffing Algorithm)進(jìn)行高效的視圖更新;