2016-12-14 5 views
0

Ich suche die page reagieren Tutorial, und es zeigt:Was bedeutet() => bedeutet in Javascript classname ES6?

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 

Was bedeutet ist das? Ist es gleich:

function() { 
    return HelloWorldApp 
} 

Wenn es so ist, warum nicht mit:

HelloWorldApp 

direkt?

+2

Funktion, die HelloWorldApp zurückgibt, ist nicht dasselbe wie HelloWorldApp –

+1

Der Grund, warum Sie eine Funktion verwenden würden, ist es ein träges Laden zu machen. Auf diese Weise wird die Klasse nicht wirklich gelöst, bis Sie die Komponente verwenden. – max

Antwort

4

Das ist eine ES6 arrow function ist. Es ist eine Funktion, die keine Argumente und gibt HelloWorldApp benötigt. Es ist äquivalent zu:

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

Was, warum es eine Funktion braucht und nicht nur die Komponente Reaktion, ich bin nicht sicher. Vielleicht ist es nur eine API-Entscheidung von Native React.