易百教程

46、与 ES5 语法相比,React 的 ES6 语法出现了哪些主要变化?React 的 ES6 语法与 ES5 相比有何不同?

以下是在比较 ES6 和 ES5 时可以看到的最明显的语法:

require vs import
在 ES5 中的语法:

var React = require('react');

在 ES6 中的语法:

import React from 'react';

export vs exports
在 ES5 中的语法:

module.exports = Component;

在 ES6 中的语法:

export default Component;

组件和函数
在 ES5 中的语法:

var MyComponent = React.createClass({  
    render: function() {  
        return  
<h3>Hello JavaTpoint!</h3>  
;  
    }  
});

在 ES6 中的语法:

class MyComponent extends React.Component {  
    render() {  
        return  
<h3>Hello JavaTpoint!</h3>  
;  
    }  
}

props
在 ES5 中的语法:

var App = React.createClass({  
    propTypes: { name: React.PropTypes.string },  
    render: function() {  
        return   
<h3>Hello, {this.props.name}!</h3>  
;  
    }  
});

在 ES6 中的语法:

class App extends React.Component {  
    render() {  
        return   
<h3>Hello, {this.props.name}!</h3>  
;  
    }  
}

state
在 ES5 中的语法:

var App = React.createClass({  
    getInitialState: function() {  
        return { name: 'world' };  
    },  
    render: function() {  
        return  
<h3>Hello, {this.state.name}!</h3>  
;  
    }  
});

在 ES6 中的语法:

class App extends React.Component {  
    constructor() {  
        super();  
        this.state = { name: 'world' };  
    }  
    render() {  
        return  
<h3>Hello, {this.state.name}!</h3>  
;  
    }  
}