React
是 React 庫(kù)的入口。如果使用的是預(yù)編譯包,則 React
是全局的;如果使用 CommonJS 模塊系統(tǒng),則可以用require()
函數(shù)引入 React。
ReactClass createClass(object specification)
創(chuàng)建一個(gè)組件類,并作出定義。組件實(shí)現(xiàn)了 render()
方法,該方法返回一個(gè)子級(jí)。該子級(jí)可能包含很深的子級(jí)結(jié)構(gòu)。組件與標(biāo)準(zhǔn)原型類的不同之處在于,你不需要使用 new 來(lái)實(shí)例化。 組件是一種很方便的封裝,可以(通過(guò) new )為你創(chuàng)建后臺(tái)實(shí)例。
更多關(guān)于定義組件對(duì)象的信息,參考組件定義和生命周期。
ReactElement createElement( string/ReactClass type, [object props], [children ...] )
創(chuàng)建并返回一個(gè)新的指定類型的 ReactElement
。type 參數(shù)可以是一個(gè) html 標(biāo)簽名字字符串(例如,“div”,“span”,等等),或者是 ReactClass
(通過(guò) React.createClass
創(chuàng)建的)。
factoryFunction createFactory( string/ReactClass type )
返回一個(gè)生成指定類型 ReactElements 的函數(shù)。比如 React.createElement
,type 參數(shù)可以是一個(gè) html 標(biāo)簽名字字符串(例如,“div”,“span”,等等),或者是 ReactClass
。
ReactComponent render( ReactElement element, DOMElement container, [function callback] )
渲染一個(gè) ReactElement 到 DOM 中,放在 container
指定的 DOM 元素下,返回一個(gè)到該組件的引用。
如果 ReactElement 之前就被渲染到了 container
中,該函數(shù)將會(huì)更新此 ReactElement,僅改變需要改變的 DOM 節(jié)點(diǎn)以展示最新的 React 組件。
如果提供了可選的回調(diào)函數(shù),則該函數(shù)將會(huì)在組件渲染或者更新之后調(diào)用。
注意:
React.render()
替換傳入的容器節(jié)點(diǎn)內(nèi)容。在將來(lái),或許可能插入組件到已存在的 DOM 節(jié)點(diǎn)中,但不覆蓋已有的子節(jié)點(diǎn)。
boolean unmountComponentAtNode(DOMElement container)
從 DOM 中移除已經(jīng)掛載的 React 組件,清除相應(yīng)的事件處理器和 state。如果在 container 內(nèi)沒(méi)有組件掛載,這個(gè)函數(shù)將什么都不做。如果組件成功移除,則返回 true
;如果沒(méi)有組件被移除,則返回 false
。
string renderToString(ReactElement element)
把組件渲染成原始的 HTML 字符串。該方法應(yīng)該僅在服務(wù)器端使用。React 將會(huì)返回一個(gè) HTML 字符串。你可以在服務(wù)器端用此方法生成 HTML,然后將這些標(biāo)記發(fā)送給客戶端,這樣可以獲得更快的頁(yè)面加載速度,并且有利于搜索引擎抓取頁(yè)面,方便做 SEO。
如果在一個(gè)節(jié)點(diǎn)上面調(diào)用 React.render()
,并且該節(jié)點(diǎn)已經(jīng)有了服務(wù)器渲染的標(biāo)記,React 將會(huì)維護(hù)該節(jié)點(diǎn),并且僅綁定事件處理器,保證有一個(gè)高效的首屏加載體驗(yàn)。
string renderToStaticMarkup(ReactElement element)
和 renderToString
類似,除了不創(chuàng)建額外的 DOM 屬性,例如 data-react-id
,因?yàn)檫@些屬性僅在 React 內(nèi)部使用。如果你想用 React 做一個(gè)簡(jiǎn)單的靜態(tài)頁(yè)面生成器,這是很有用的,因?yàn)閬G掉額外的屬性能夠節(jié)省很多字節(jié)。
boolean isValidElement(* object)
判斷對(duì)象是否是一個(gè) ReactElement。
React.DOM
運(yùn)用 React.createElement
為 DOM 組件提供了方便的包裝。該方式僅在未使用 JSX 的時(shí)候適用。例如,React.DOM.div(null, 'Hello World!')
。
React.PropTypes
包含了能與組件 propTypes
對(duì)象共用的類型,用于驗(yàn)證傳入組件的 props。更多有關(guān) propTypes
的信息,參考復(fù)用組件。
initializeTouchEvents(boolean shouldUseTouch)
配置 React 的事件系統(tǒng),使 React 能處理移動(dòng)設(shè)備的觸摸( touch )事件。
React.Children
為處理 this.props.children
這個(gè)封閉的數(shù)據(jù)結(jié)構(gòu)提供了有用的工具。
object React.Children.map(object children, function fn [, object context])
在每一個(gè)直接子級(jí)(包含在 children
參數(shù)中的)上調(diào)用 fn
函數(shù),此函數(shù)中的 this
指向 上下文
。如果 children
是一個(gè)內(nèi)嵌的對(duì)象或者數(shù)組,它將被遍歷:不會(huì)傳入容器對(duì)象到 fn
中。如果 children 參數(shù)是 null
或者 undefined
,那么返回 null
或者 undefined
而不是一個(gè)空對(duì)象。
React.Children.forEach(object children, function fn [, object context])
類似于 React.Children.map()
,但是不返回對(duì)象。
number React.Children.count(object children)
返回 children
當(dāng)中的組件總數(shù),和傳遞給 map
或者 forEach
的回調(diào)函數(shù)的調(diào)用次數(shù)一致。
object React.Children.only(object children)
返回 children
中僅有的子級(jí)。否則拋出異常。
更多建議: