頂層 API

2019-08-14 14:29 更新

React

React 是 React 庫的入口。如果使用的是預(yù)編譯包,則 React 是全局的;如果使用 CommonJS 模塊系統(tǒng),則可以用require() 函數(shù)引入 React。

React.createClass

ReactClass createClass(object specification)

創(chuàng)建一個組件類,并作出定義。組件實現(xiàn)了 render() 方法,該方法返回一個子級。該子級可能包含很深的子級結(jié)構(gòu)。組件與標(biāo)準(zhǔn)原型類的不同之處在于,你不需要使用 new 來實例化。 組件是一種很方便的封裝,可以(通過 new )為你創(chuàng)建后臺實例。

更多關(guān)于定義組件對象的信息,參考組件定義和生命周期

React.createElement

ReactElement createElement(  string/ReactClass type,
  [object props],
  [children ...]
)

創(chuàng)建并返回一個新的指定類型的 ReactElement。type 參數(shù)可以是一個 html 標(biāo)簽名字字符串(例如,“div”,“span”,等等),或者是 ReactClass (通過 React.createClass 創(chuàng)建的)。

React.createFactory

factoryFunction createFactory(
  string/ReactClass type
)

返回一個生成指定類型 ReactElements 的函數(shù)。比如 React.createElement,type 參數(shù)可以是一個 html 標(biāo)簽名字字符串(例如,“div”,“span”,等等),或者是 ReactClass。

React.render

ReactComponent render(
  ReactElement element,
  DOMElement container,
  [function callback]
)

渲染一個 ReactElement 到 DOM 中,放在 container 指定的 DOM 元素下,返回一個到該組件的引用。

如果 ReactElement 之前就被渲染到了 container 中,該函數(shù)將會更新此 ReactElement,僅改變需要改變的 DOM 節(jié)點(diǎn)以展示最新的 React 組件。

如果提供了可選的回調(diào)函數(shù),則該函數(shù)將會在組件渲染或者更新之后調(diào)用。

注意:

React.render() 替換傳入的容器節(jié)點(diǎn)內(nèi)容。在將來,或許可能插入組件到已存在的 DOM 節(jié)點(diǎn)中,但不覆蓋已有的子節(jié)點(diǎn)。

React.unmountComponentAtNode

boolean unmountComponentAtNode(DOMElement container)

從 DOM 中移除已經(jīng)掛載的 React 組件,清除相應(yīng)的事件處理器和 state。如果在 container 內(nèi)沒有組件掛載,這個函數(shù)將什么都不做。如果組件成功移除,則返回 true;如果沒有組件被移除,則返回 false。

React.renderToString

string renderToString(ReactElement element)

把組件渲染成原始的 HTML 字符串。該方法應(yīng)該僅在服務(wù)器端使用。React 將會返回一個 HTML 字符串。你可以在服務(wù)器端用此方法生成 HTML,然后將這些標(biāo)記發(fā)送給客戶端,這樣可以獲得更快的頁面加載速度,并且有利于搜索引擎抓取頁面,方便做 SEO。

如果在一個節(jié)點(diǎn)上面調(diào)用 React.render(),并且該節(jié)點(diǎn)已經(jīng)有了服務(wù)器渲染的標(biāo)記,React 將會維護(hù)該節(jié)點(diǎn),并且僅綁定事件處理器,保證有一個高效的首屏加載體驗。

React.renderToStaticMarkup

string renderToStaticMarkup(ReactElement element)

和 renderToString 類似,除了不創(chuàng)建額外的 DOM 屬性,例如 data-react-id,因為這些屬性僅在 React 內(nèi)部使用。如果你想用 React 做一個簡單的靜態(tài)頁面生成器,這是很有用的,因為丟掉額外的屬性能夠節(jié)省很多字節(jié)。

React.isValidElement

boolean isValidElement(* object)

判斷對象是否是一個 ReactElement。

React.DOM

React.DOM 運(yùn)用 React.createElement 為 DOM 組件提供了方便的包裝。該方式僅在未使用 JSX 的時候適用。例如,React.DOM.div(null, 'Hello World!')。

React.PropTypes

React.PropTypes 包含了能與組件 propTypes 對象共用的類型,用于驗證傳入組件的 props。更多有關(guān) propTypes 的信息,參考復(fù)用組件。

React.initializeTouchEvents

initializeTouchEvents(boolean shouldUseTouch)

配置 React 的事件系統(tǒng),使 React 能處理移動設(shè)備的觸摸( touch )事件。

React.Children

React.Children 為處理 this.props.children 這個封閉的數(shù)據(jù)結(jié)構(gòu)提供了有用的工具。

React.Children.map

object React.Children.map(object children, function fn [, object context])

在每一個直接子級(包含在 children 參數(shù)中的)上調(diào)用 fn 函數(shù),此函數(shù)中的 this 指向 上下文。如果 children是一個內(nèi)嵌的對象或者數(shù)組,它將被遍歷:不會傳入容器對象到 fn 中。如果 children 參數(shù)是 null 或者 undefined,那么返回 null 或者 undefined 而不是一個空對象。

React.Children.forEach

React.Children.forEach(object children, function fn [, object context])

類似于 React.Children.map(),但是不返回對象。

React.Children.count

number React.Children.count(object children)

返回 children 當(dāng)中的組件總數(shù),和傳遞給 map 或者 forEach 的回調(diào)函數(shù)的調(diào)用次數(shù)一致。

React.Children.only

object React.Children.only(object children)

返回 children 中僅有的子級。否則拋出異常。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號