2016-11-13 28 views
0

幾個月前我開始學習react.js,然後我放棄了它。今天我又開始學習React了。閱讀官方文檔,我發現如何創建組件的語法已經改變。在過去,我學會了以這種方式創建組件:在React.js中創建組件:「React.createClass」仍然可用嗎?

reactComponentElement = React.createClass({ 
    render: function(){ 
     return <h1>Title</h1>; 
    } 
}) 

所以,使用React.createClass。

今天,我在一個組件的創建可以用功能

function reactComponentElement(){ 
    return <h1>Title</h1>; 
} 

或一類

class Clock extends React.Component { 
    render() { 
     return (
     <div> 
      <h1>Hello, world!</h1> 
     </div> 
    ); 
    } 
} 

所以可以實現文檔看,我還可以使用React.createClass?

回答

0

在功能

function reactComponentElement(){ 
    return <h1>Title</h1>; 
} 
沒有創建

反應成分機智所有它的意思 - 你只是還有些JSX。類只在ES6和更高版本中可用,所以如果你在ES5中編碼,你仍然必須使用React.createClass(); React.Component

+0

你看過這個問題嗎? 「那麼,React.createClass不再使用了嗎?」我的回答 - 「如果你在ES5中編碼,你仍然必須使用React.createClass()」。有什麼不對或者你不明白我的答案? –

+0

我認爲這是一個很好的回覆:) 我只是等待其他可能的答覆,然後我用綠色檢查標記它 – marco

2

如果我編碼在ES 5.1我仍在使用的語法:

var ComponentName = React.createClass({ 
    render: function() { 
     return (
      <some JSX /> 
     ) 
    } 
}) 

然而,當我寫ES 6的語法,我用的是extends聲明,如果我想要一個「智能」或基於類的組件(一個顯示和食堂用數據):

import React, { Component } from 'react' 

class ComponentName extends Component { 
    render() { 
     return (
      <some JSX /> 
     ) 
    } 
} 

但不是每一個組件都需要,我可以一樣好申報功能部件(我稱這些「啞」組件,因爲我只是用那些獲得somethi納克在屏幕上)在ES 6:

const ComponentName =() => { 
    return (
     <some JSX /> 
    ) 
} 

我注意到陣營文檔中有ES5和ES 6語法(之間的不匹配,如一些網頁仍然在ES 5,別人都在ES 6) 。你可以在這裏找到ES6語法:https://facebook.github.io/react/docs/react-component.html

相關問題