2016-06-01 7 views
5

Il Reagire documenti nativi (https://facebook.github.io/react-native/docs/asyncstorage.html) dice:Perché i documenti React Native consiglia di utilizzare un'astrazione su AsyncStorage?

Si consiglia di utilizzare un'astrazione in cima AsyncStorage invece di AsyncStorage direttamente per qualcosa di più di utilizzo della luce dal momento che opera a livello globale.

Non ho capito perché consiglia di scrivere un'astrazione solo perché opera a livello globale.

Ha senso usarlo solo per cose leggere, ma perché operare globalmente è una cosa negativa?

risposta

5

Pensa agli elementi AsyncStorage come le variabili globali, quindi ogni volta che aggiungi qualcosa o leggi qualcosa accedi a un globale. Questo potrebbe avere senso per qualcosa come un URL di base dell'API, ma per la maggior parte delle altre cose comincerà a diventare disordinato.

Immaginate di aver bisogno di memorizzare le informazioni sugli utenti, potreste ragionevolmente iniziare con il loro nome, quindi aggiungete name ad Async. Più tardi ti rendi conto che vuoi il loro DOB, quindi forse il loro pets e così via. Se li crei a livello globale, accederai anche a loro utilizzando nomi variabili come name, che nel contesto globale iniziano a perdere significato. Inoltre, si sarebbe dovuto scrivere:

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

In tutto il progetto - in futuro, se il nome della variabile name modifiche, dovrete aggiornarlo in tutti i file.

Invece si sarebbe meglio di scrivere una classe User, che fornirebbe le variabili di istanza (o qualcosa del genere), e che potrebbe poi si sono puntate in asincrono. Inoltre, è possibile sostituire il meccanismo di archiviazione con facilità se il progetto è successivamente supportato da un'API o se è necessario un sistema di archiviazione in stile database più potente.