2016-06-01 4 views
5

Die Reaktion Mutter docs (https://facebook.github.io/react-native/docs/asyncstorage.html) sagt:Warum empfiehlt die React Native-Dokumentation, dass Sie eine Abstraktion oberhalb von AsyncStorage verwenden?

Es wird empfohlen, eine Abstraktion auf der AsyncStorage anstelle von AsyncStorage direkt für etwas mehr als Lichtnutzung, da sie weltweit tätig.

Ich verstehe nicht, warum es empfiehlt, ich schreibe eine Abstraktion, nur weil es global funktioniert.

Es macht Sinn, es nur für leichte Dinge zu verwenden, aber warum funktioniert global eine schlechte Sache?

Antwort

5

Denken Sie an AsyncStorage Elemente wie globale Variablen, also jedes Mal, wenn Sie etwas hinzufügen oder etwas lesen, greifen Sie auf eine globale. Dies könnte für eine API-Basis-URL sinnvoll sein, aber für die meisten anderen Dinge wird es unordentlich.

Stellen Sie sich vor, Sie müssen Informationen über Benutzer speichern, Sie könnten vernünftigerweise mit ihrem Namen beginnen, also fügen Sie name zu Async hinzu. Später merkt man, dass Sie ihre DOB wollen, dann vielleicht ihre pets und so weiter. Wenn Sie diese global erstellen, greifen Sie auch auf sie zu, indem Sie Variablennamen wie name verwenden, die im globalen Kontext an Bedeutung verlieren. Des Weiteren würden Sie schreiben müssen:

AsyncStorage.getItem('name', (err, result) => { 
    this.setState({ 
     name: result 
    }) 
}) 

Alle über Ihr Projekt - in der Zukunft, wenn die Variablennamen name ändert, werden Sie es über alle Dateien zu aktualisieren.

Statt würden Sie besser sein, eine User Klasse zu schreiben, welche Instanz Variablen liefern würde (oder so), und die dann selbst in Async serialise könnte. Außerdem können Sie den Speichermechanismus problemlos austauschen, wenn das Projekt später von einer API unterstützt wird, oder ein leistungsfähigeres Datenbankspeichersystem erforderlich ist.

Verwandte Themen