2016-05-31 8 views
2

Was ist der Unterschied zwischen diesen beiden Code-Schnipsel?Merkwürdiger Pfeil Funktion Parameter Verhalten

const Article = ({article}) => { 
    return ( 
     <article key={article.id}> 
      <a href={article.link}>{article.title}</a> 
      <p>{article.description}</p> 
     </article> 
    ); 
}; 

und diese:

const Article = (article) => { 
    return ( 
     <article key={article.id}> 
      <a href={article.link}>{article.title}</a> 
      <p>{article.description}</p> 
     </article> 
    ); 
}; 

Der einzige Unterschied ist geschweiften Klammern in Pfeilfunktionsparameter Liste ... aber es eine anderes Verhalten hat ... in erstem Beispiel article zugänglich als einfaches Objekt. .. aber in der zweiten, Artikel zugänglich wie eine Art Getter oder so ähnlich ...

+2

nichts zu tun hat mit Pfeilfunktionen, das ist die Destrukturierungssyntax in ES2015. – elclanrs

Antwort

3

Dies wird unter Verwendung der Syntax der Destrukturierung ES6.

Im Wesentlichen erwartet Article ein Objekt. Das wird dann in neue Eigenschaften destrukturiert.

Ihr erster Artikel:

const Article = ({article}) => { 
    return ( 
    <article key={article.id}> 
     <a href={article.link}>{article.title}</a> 
     <p>{article.description}</p> 
    </article> 
); 
}; 

entspricht:

const Article = (props) => { 
    const article = props.article; 
    return ( 
    <article key={article.id}> 
     <a href={article.link}>{article.title}</a> 
     <p>{article.description}</p> 
    </article> 
); 
}; 

Das Mozilla Developer Network einen großen Artikel auf beiden Array/Objekt Destrukturierung Formen hat: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

+0

Got It. Vielen Dank! –

2

Es ist eine ES6-Funktion zum Destrukturieren von Arrays und Objekten.

http://es6-features.org/#ParameterContextMatching

+0

Danke! Jetzt sehe ich es ... etwas verpasst ... Ein weiterer Link über das Problem: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment –

Verwandte Themen