2016-12-14 5 views
5

ich auf einige kamen Code reagieren, die eine Komponente Zustand innerhalb einer Klasse definiert wie folgt:Initializing reagieren Komponente Zustand

// Snippet 1 
class Sample extends React.Component { 
    state = { 
     count: 0 
    } 
} 

So wie ich gelernt habe, reagieren, um den Zustand im Inneren der Konstruktor einer Klasse zu erklären war:

// Snippet 2 
class Sample extends React.Component { 
    constructor(props) { 
     super(props); 
     this.state = { 
      count: 0 
     }; 
    } 
} 

der einzige Unterschied, den ich denken kann, ist, dass der Staat im Konstruktor initialisiert würde garantieren, wird der Zustand richtig in dem Komponentenlebenszyklus initialisiert.

Was sind die Unterschiede zwischen den oben genannten zwei Codeschnipsel? Kann in Codeausschnitt 1 sicher angenommen werden, dass der Status ordnungsgemäß festgelegt wird, wenn die Klasse initialisiert wird?

Antwort

3

Was Sie sehen, ist ES7+ Property Initializers. Es ist so gemacht, weil Facebook weiß, dass sich das Javascript in Zukunft ändern wird. Sie wollen mit diesen Veränderungen umgehen können.

Nach facebook ES7 + Immobilien Initializers

Warten scheint Klassen Eigenschaften zuweisen wie ein sehr Imperativ Weg von definieren! Sie haben Recht, aber wir haben es so entworfen , weil es idiomatisch ist. Wir erwarten, dass eine deklarative Syntax für Eigenschaft Initialisierung in zukünftigen Versionen von JavaScript ....

Hier kommen Sie zu uns ist die Facebook link auch weitere Informationen here

auch ein Link to the proposal

Verwandte Themen