2016-10-31 101 views
2

我對此很新,所以請大家忍耐。我研究了React在哪裏創建組件,與Reactjs語法混淆

var app = React.createClass({ ... }); 

就像here

但是,在我的Mac中安裝反應之後,我發現語法與我以前的語法有點不同。即

class Application extends React.Component { ... } 

就像here

現在,我明白了代碼,因爲我在Java中的先前知識。但我只是想知道其中的差別。這對我來說是一個問題,因爲當我編寫像React.createClass()這樣的語法時,它不起作用。

如果你看第二個link in codepen你會發現Babel寫在JS旁邊。那麼,默認情況下會使用Babel嗎?

我想你明白了。謝謝!

+0

第一種形式使用ES5和第二形式使用ES6語法。 –

+0

您可能會比等待別人在這裏解決這個問題快得多得到一個更好的答案。 'React.createClass'還增加了一些在您使用ES6類語法時不會出現的好東西(例如函數自動綁定)。這篇文章似乎是一個有用的閱讀主題:https://reactjsnews.com/composing-components –

回答

2

您的第一個示例使用React.createClass()輔助函數,而第二個示例使用ES6 class syntax來定義React組件。

兩者都是定義組件的有效方法。但是,請注意,在發佈ES6代碼之前,您需要將ES6代碼轉換爲ES5,以實現跨瀏覽器兼容。

More info on ES6-style component definitions.