react中createFactory, createClass, createElement分別在什麼場景下使用,為什麼要這麼定義?
01-02
react
三者用途稍有不同,按依賴關係調整下順序:1. createClass,如其名就是創建React組件對應的類,描述你將要創建組件的各種行為,其中只有當組件被渲染時需要輸出的內容的render介面是必須實現的,其他都是可選:
var Hello = React.createClass({
render: function() {
return &Hello Taobao, Hello UED&
}
});
2. createElement,創建React組件實例,支持type,config,children三個參數:
ReactElement.createElement = function(type, config, children) {
...
}
如我們在jsx中描述的 &< Hello /&> ,編譯後就是 React.createElement(Hello)
3. createFactory,通過工廠方法創建React組件實例,在js里要實現工廠方法只需創建一個帶type參數的createElement的綁定函數:ReactElement.createFactory = function(type) {
var factory = ReactElement.createElement.bind(null, type);
return factory;
};
創建模式目的是隔離與簡化創建組件的過程,模式的東西自然是可用可不用,如果需要批量創建某個組件時,可以通過工廠方法來實現:
var h = React.createFactory(Hello);
h({x:1})
h({x:2})
h({x:3})
推薦閱讀:
※如何評價React v16.0?
※阿里還會使用react嗎?
※沒有安卓和ios開發經驗的前端適合學rn嗎?
※Flux todoMVC 為什麼要費那麼多力氣實現一個功能!!!!,這樣寫的好處是神馬?
※如何評價 Airbnb 發布的 React Sketch.app 工具?