這些功能通常被稱爲factories意味着它們是與特定類型的屬性產生ReactElements
功能。
這大約是這些工廠是如何引擎蓋下創建:
function createFactory(type) {
return React.createElement.bind(null, type);
}
它返回React.createElement
與this
綁定功能勢必null
和type
勢必無論是傳入,使您可以創建速記實例化功能爲您的元素:
// create a function that creates React <div> elements
let div = createFactory('div');
// create two divs using the div factory function
let div1 = div({ /* some props */ }, 'Div 1');
let div2 = div({ /* some props */ }, 'Div 2');
React已經內置工廠爲常見的HTML標記,如div
,li
等,你有你的問題。
,但我在努力理解爲什麼類型爲null。
考慮到所有上述的,當你看到你的一個例子:
React.DOM.div(null, 'Hello World!')
會出現以下情況:
React.DOM.div
僅僅是一個工廠函數發動機罩下穿過'div'
作爲第一個參數爲React.createElement
,這是類型,其他所有參數都作爲剩餘參數傳遞。
基本思想:
// the function is created as a factory
React.DOM.div = createFactory('div');
// and used to create a <div> element
var myDiv = React.DOM.div(null, 'Hello World');
這作爲第一個參數的值div
是在一個類似的方式設置爲我已經每當這個工廠創建如上所示。
因此,null
在你的情況下只是props
對象,而不是type
。 Type通過工廠綁定爲div
,意思是props
是第一個參數,而'Hello World!'
字符串是children
的參數。
很棒的回答。在最後一段中,我假設你的意思是'div'作爲第一個參數傳遞給** createFactory ** – Snowcrash
謝謝,很高興幫助。其實我不這麼認爲,我已經做了一個修改來澄清:) – nem035