2016-06-01 1 views
5

ザ・ネイティブドキュメント(https://facebook.github.io/react-native/docs/asyncstorage.html)と反応は言う:なぜReactネイティブのドキュメントでは、AsyncStorageの上に抽象化を使用することをお勧めしますか?

それが世界的に動作するため、あなたは光の利用以上のものについては、直接の代わりAsyncStorageのAsyncStorageの上に抽象化を使用することをお勧めします。

グローバルに動作するという理由だけで抽象化を書くことをお勧めする理由はわかりません。

軽いものにのみ使用するのは理にかなっていますが、なぜグローバルに動作させるのが悪いのですか?

答えて

5

は、グローバル変数のようAsyncStorageアイテム、あなたが何かを追加したり、グローバルにアクセスしている何かを読んでそうするたびに考えてください。これはAPIの基本URLのようなものには意味をなさけるかもしれませんが、他のほとんどの場合は面倒です。

ユーザーに関する情報を格納する必要があるとしたら、その名前で始まる可能性があるので、nameをAsyncに追加します。後であなたは彼らのDOB、そしておそらく彼らのpetsなどがほしいと気づいています。これらをグローバルに作成する場合は、nameなどの変数名を使用してアクセスすることになります。グローバルコンテキストでは意味を失い始めます。さらに、あなたが書く必要があるだろう:

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

すべてのプロジェクトの上に - 将来的には変数名name変更された場合、あなたはすべてのファイルを渡ってそれを更新する必要があります。

の代わりにUserクラスを作成すると、インスタンス変数などが提供され、Asyncにシリアル化される可能性があります。さらに、プロジェクトが後でAPIでバックアップされる場合や、より強力なデータベース形式のストレージシステムが必要な場合は、ストレージメカニズムを簡単にスワップできます。

関連する問題