標籤:cti children 工廠 方法 隔離 actor edit 依賴關係 定義
元彥
連結:https://www.zhihu.com/question/27602269/answer/40168594
來源:知乎
著作權歸作者所有,轉載請聯絡作者獲得授權。
三者用途稍有不同,按依賴關係調整下順序:
1. createClass,如其名就是建立React組件對應的類,描述你將要建立組件的各種行為,其中只有當組件被渲染時需要輸出的內容的render介面是必須實現的,其他都是可選:
var Hello = React.createClass({ render: function() { return <div>Hello Taobao, Hello UED</div>; }});
2. createElement,建立React組件執行個體,支援type,config,children三個參數:
ReactElement.createElement = function(type, config, children) { ...}
如我們在jsx中描述的 < Hello /> ,編譯後就是 React.createElement(Hello)
3. createFactory,通過Factory 方法建立React組件執行個體,在js裡要實現Factory 方法只需建立一個帶type參數的createElement的綁定函數:
ReactElement.createFactory = function(type) { var factory = ReactElement.createElement.bind(null, type); return factory;};
建立模式目的是隔離與簡化建立組件的過程,模式的東西自然是可用可不用,如果需要大量建立某個組件時,可以通過Factory 方法來實現:
var h = React.createFactory(Hello);h({x:1})h({x:2})h({x:3})
react中createFactory, createClass, createElement分別在什麼情境下使用,為什麼要這麼定義?