Pomyśl o AsyncStorage
elementach takich jak zmienne globalne, więc za każdym razem, gdy coś dodajesz lub czytasz coś, do czego uzyskujesz dostęp do globalnej. Może to mieć sens w przypadku podstawowego adresu URL interfejsu API, ale w przypadku większości innych rzeczy będzie się bałagan.
Wyobraź sobie, że musisz przechowywać informacje o użytkownikach, możesz zacząć od ich nazwy, więc dodajesz name
do Async. Później zdajesz sobie sprawę, że chcesz ich DOB
, to może ich pets
i tak dalej. Jeśli tworzysz je globalnie, będziesz także uzyskiwał do nich dostęp za pomocą nazw zmiennych, takich jak name
- które w globalnym kontekście zaczynają tracić znaczenie. Ponadto, trzeba by napisać:
AsyncStorage.getItem('name', (err, result) => {
this.setState({
name: result
})
})
całym projekcie - w przyszłości, jeśli nazwę zmiennej name
zmiany, musisz zaktualizować go we wszystkich plikach.
Zamiast byłbyś lepszy od pisania User
klasy, który zapewniałby zmienne instancji (lub coś takiego), a które mogłyby następnie serialise się do Async. Co więcej, możesz z łatwością zamienić mechanizm magazynowania, jeśli projekt został później poparty przez interfejs API lub wymagał mocniejszego systemu pamięci opartego na bazie danych.