react中createFactory, createClass, createElement分別在什麼情境下使用,為什麼要這麼定義?

來源:互聯網
上載者:User

標籤: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分別在什麼情境下使用,為什麼要這麼定義?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.