什么()=> className在Javascript ES6中意味着什么?

时间:2016-12-14 02:14:58

标签: javascript ecmascript-6

我正在看反应教程page,它显示:

import React, { Component } from 'react';
import { AppRegistry, Text } from 'react-native';

class HelloWorldApp extends Component {
  render() {
    return (
      <Text>Hello world!</Text>
    );
  }
}

AppRegistry.registerComponent('HelloWorldApp', () => HelloWorldApp);
                                             // ^ this part 

这意味着什么?它等于:

function() {
  return HelloWorldApp
}

如果是这样,为什么不使用:

HelloWorldApp 

直接?

1 个答案:

答案 0 :(得分:4)

那是ES6 arrow function。它是一个不需要任何参数并返回HelloWorldApp的函数。它相当于:

AppRegistry.registerComponent('HelloWorldApp', function() {
    return HelloWorldApp;
});

至于为什么它需要一个函数而不仅仅是React组件,我不确定。也许这只是React Native的API决定。