俗話說「萬丈高樓平地起」,從這一期開始,咱們將使用基於Webpack+Babel的React學習React框架中的一些基礎概念。在學習React的過程當中常常會把Element、Class和Component這幾個基礎概念混淆。因此咱們看看這些React的概念究竟是幹什麼的,有什麼做用。react
ReactDOM是React封裝DOM的一個軟件包,提供了DOM的一些特定方法。render方法就是將React element渲染到事先定義的容器中。框架
// render方法的定義 ReactDOM.render( element, container, [callback] )
咱們能夠把render方法理解爲React應用的一個入口,這個方法首先經過判斷element中虛擬DOM節點的markup是不是大寫仍是小寫,從而創建相應的渲染。小寫的虛擬DOM節點的makeup,咱們稱之爲原生DOM元素,常見的如div
、span
等。而大寫markup的虛擬DOM節點,咱們稱之爲自定義DOM元素。對於原生DOM元素,render方法會直接建立HTML原生的DOM,而對於自定義的DOM元素,render方法會建立組件來定義。dom
因此簡單的說,element就是React實現界面內容的最小單元,它表明了虛擬DOM中的一個對象。它描述了組件實例和DOM節點的關係在React中,經過使用React.createElment能夠實現虛擬DOM節點。好比咱們定義一個element:學習
const element = React.createElement( 'h1', {id: 'myElement'}, 'hello there!' )
固然也能夠在元素中嵌套組件,因爲這種特性,咱們能夠用元素來描述DOM節點樹。spa
class myCompnent extends React.Component{ render(){ return ( <h1>hello there!<h1> ) } } const element = React.createElement( myCompnent, null, null )
組件就是一個方法或者一個類,能夠接受必定的輸入,以後返回一個React 元素。code