React
React 是進入React架構的入口。如果你正在使用預先構建好的包,它就是一個全局變量。如果你是用的是CommonJS規範,你就需要 require()它。
React.createClass
function createClass(object specification)
創建一個一定規格的組件。一個組件的實現是靠render方法返回 一個單獨的React元素。組件和其它標準的類的擴展不同的唯一原因就是你不需要重複調用。React.createElement
function createElement(
string/ReactComponent type,
[object props],
[children ...]
)
創建並返回一個新的指定規格的ReactElement(而不是組件)。它的type參數可以是一個html標籤名,也可以是一個通過React.createClass創建的一個組件。
React.render
ReactComponent render(
ReactElement element,
DOMElement container,
[function callback]
)
將一個ReactElement連接到DOM的container中,並且返回一個組件的引用。
如果ReactElement是是在以前就被渲染到container中過,那麼再次調用就會更新DOM(只更新與上次改變後不同的地方)。
如果有第三個參數callback,它將會在組件被渲染或者更新後被調用。
注意:React.render()將會替換掉原有容器中的子節點。可能在未來,能實現渲染到組件時不會重寫已存在的DOM子節點。
React.unmountComponentAtNode
boolean unmountComponentAtNode(DOMElement container)
直接把當前DOM節點渲染的全部組件移除(包括事件和state),這樣能避免內存暴增而導致瀏覽器崩潰。如果DOM節點中沒有被渲染的組件,調用這個函數不會做任何改變。如果組件是已經被移除的的或是false或是沒有組件可以去移除,這個方法返回true。
React.renderToString
string renderToString(ReactElement element)
初始化一個ReactElement的HTML。這個方法只能用在服務器。它會返回一段HTML字符串。你可以在服務器端用這個方法來生成HTMl,並且發送初始請求以加速頁面加載,
同時允許搜索引擎去抓取你設計好的SEO頁面。
如果此時你調用React.render()渲染一個節點,React將會緩存並且只是給它加上事件,讓你有一個非常高效的首次加載體驗。
React.isValidElement
boolean isValidElement(* object)
檢查對象是否一個ReactElement。
React.DOM
爲DOM組件提供了方便的對象(React.createElement創建的對象)包容器。這是在你不使用JSX語法的另一種寫法。比如:React.DOM.div(null, 'Hello World!')
。第一個參數是屬性集合的對象。
React.PropTypes
這個方法是爲了驗證從其它組件傳遞過來的屬性。
React.initialize TouchEvents
initializeTouchEvents(boolean shouldUseTouch)
是否開啓移動設備上用React的事件機制來處理觸屏事件。
React.Children
React.Children
用來處理 this.props.children 中的複雜數據。
object React.Children.map(object children, function fn [, object context])
例子:
<pre name="code" class="javascript">var App = React.createClass({
render: function() {
var children = React.Children.map(this.props.children, function(child, i) {
child.props.style.width = '100px'
})
return (
<div>{children}</div>
)
}
})
在與 children 相鄰的子元素中調用 fn。如果children是一個複雜對象或是一個數組,它將會被遍歷: fn 是不會傳遞容器對象的。
如果children是 null 或 undefined ,它將返回一個 null 或 undefined ,而不是一個空對象。
React.Children.forEach
React.Children.forEach(object children, function fn [, object context])
用法同React.Children,但是沒有返回值。
React.Children.count
number React.Children.count(object children)
返回children中包含的組件數量。React.Children.only
object React.Children.only(object children)
返回children中僅有的元素。如果子元素數量不唯一,拋出異常。