Ich habe einige Fragen über die Verwendung und Muster der Reaktion.
Soll ich
verwenden? %Vor%oder
%Vor%beim asynchronen Laden von Daten? Was ist der Unterschied zwischen den beiden?
Ich benutze Backbone für meine Frontend-Datenstrukturen
%Vor%Update: Danke für die Antworten
Dies Frage schlägt vor, uns componentWillMount nicht zu verwenden, aber ich verstehe, dass es aussagekräftiger ist, in diesem Fall componentDidMount zu verwenden, als getInitialState scheint soll synchron verwendet werden
Update 2:
Ich musste auf getInitialState zurückgreifen, da componentDidMount nach dem Rendern ausgelöst wird und ich brauche this.props.data, um auf ein Objekt zu zeigen
componentDidMount
würde aufgerufen werden, nachdem die Komponente in das Browser-DOM eingebunden wurde (sie würde nach dem ersten Rendern aufgerufen werden und würde nicht aufgerufen werden, wenn Sie serverseitig (in einen String) rendern würden
getInitialState
wird aufgerufen, wenn die Komponente erstellt wird. Wenn Sie die ES6-Klassensyntax verwenden, können Sie diese Logik in Ihren Komponentenkonstruktor einfügen und direkt this.state
Es gibt auch componentWillMount
es würde vor dem ersten Render für Server und Client aufgerufen werden - es ist in Ihrem Fall besser geeignet.
Componentndid mount wird nach dem Rendern ausgelöst und wir laden das Ajax in das Objekt. Während des Rendervorgangs überprüfen wir, ob das Objekt Daten enthält, andernfalls senden wir ein leeres div
%Vor% Ich bin mir über diese Backbone-Verwendung nicht sicher, aber wenn Sie Daten in componentDidMount
laden, ist das in Ordnung, da der Code nach der ersten Wiedergabe der Komponente ausgeführt wird - nachdem die Daten abgerufen und der Status erneut festgelegt wurde. Die Komponente wird erneut gerendert und zeigt an diesem Punkt die korrekten Daten an. Diese Art von wie faulen Laden für mich.
Ich bin mir nicht sicher, ob getInitialState
blockiert, aber wenn dies der Fall ist, wird die Komponente erst wiedergegeben, wenn der Status geladen ist. Aber ich denke, es ist nicht so, die Daten würden wahrscheinlich nicht abgerufen werden, wenn die Komponente gerendert wird.
componentWillMount
ist möglicherweise das, was Sie möchten, aber überprüfen Sie den React lifecycle für das, was Sie tun Denken macht am meisten Sinn.
Tags und Links javascript reactjs