react一共有三種建立方式:
(1)函式式定義的無狀態元件
(2)es5原生方式react.createclass建立元件
(3)es6繼承react.component方式
無狀態函式式元件是乙個只帶有render方法的函式,並且該元件是無狀態的,具體的形式如下:
function hello(props)
} reactdom.render(, node) ;
無狀態函式元件相對於其他兩種的區別如下:
(1)由於是無狀態元件,所以就沒有例項化的過程,即不用分配多餘的記憶體,從而效能會得到提公升。
(2)無法訪問元件的this物件,如this.ref、this.state都不能訪問。
(3)元件無法訪問生命週期的方法。
(4)無狀態元件只能訪問props。
具體的表現形式如下面**段:
var es5component = react.createclass(,
defaultprops: ,
// 初始化state
getinitialstate: function() ;
},handlechange: function(event) );
},render: function()
});es5component .proptypes = ;
es5component .defaultprops = ;
react.createclass是react剛開始推薦的建立元件的方式,與無狀態元件相比,此方法建立的元件需要被例項化,並且可以訪問生命週期。
此方式是以es6方式建立react元件,具體實現方式如下**段:
class es6component extends react.component ;
// es6 類中函式必須手動繫結
this.handlechange = this.handlechange.bind(this);
}handlechange(event) );
}render()
}es6component .proptypes = ;
es6component .defaultprops = ;
通過此方式建立的元件同樣可以訪問生命週期函式、this屬性 。同樣也會被例項化,但是此方式與上邊es5建立元件方法的區別在於es5會自動繫結this到元件上,但es6不會自動繫結,在此不再過多敘述,有興趣的讀者可以看我的另一篇文章『react es6寫法中this指向』 React建立元件的三種方式
react常見的三種元件建立方式,具體如下 函式式定義的無狀態元件 es5原生方式react.createclass定義的元件 es6形式的extends react.component定義的元件 下面我們簡單說一下,這三種方式的用法 適用場合以及區別 import react,from react...
React建立元件的三種方式及其區別
react建立元件的三種方式及其區別 三種方式 函式式定義的無狀態元件es5原生方式react.createclass定義的元件 es6形式的extends react.component定義的元件 function hellocomponent props,context reactdom.ren...
React建立元件的三種方式及其區別
1.函式定義式的無狀態元件 建立純展示元件,只負責根據傳入的props來展示,不涉及state的操作。無狀態函式式元件形式上表現為乙個直帶有乙個render方法的元件類。function hellocomponent props reacrdom.render mountnode 特點是精簡,避免冗...