2016-04-07 16 views
6

AsyncStorageでアイテムのリストを保存します。リストは時間とともに更新されます。ここでReact Native AsyncStorageを使ってリストを保存する:多くのキーまたは1つ?

がリストにあることができる状態の一例である:

  1. ストア独自の下で、各連絡先:今

    [ 
        { 
        name: "Alice", 
        email: "[email protected]" 
        }, 
        { 
        name: "Bob", 
        email: "[email protected]", 
        address: "30 Madison Ave., NY" 
        } 
    ] 
    

    、このリストを格納するための2つのオプションがあるようですキー

  2. ストアつのキー

下のリスト全体Aのいずれかの利点があります。 pproach - React Nativeで何が好まれますか?

+3

、それを高めるために、あなたのネイティブ設定でお願いしない限り

は、私がどこかで読ん、asyncStorageの本当の限界を知って興味があるだろう、それは数メガバイトでした/realm.io/docs/react-native/latest/)。 AsyncStorageに比べ、キー/値よりも複雑なデータに対する多くの利点があります。 – David

答えて

4

これはデータの使用方法、アクセス方法、更新方法によって異なります。いずれかのケースを簡単にするのに役立ついくつかのasyncstorageメソッドがあります。

多くのキールートを使用する場合は、multiSetmultiGetを参照して、1回の関数呼び出しで複数のキーを取得することができます。そしてgetAllKeysは、「作成したすべての鍵のトラックを維持する」という問題を解決し、Fredrick Motteが指摘した問題の両方を解決します。

多くのキーを1回の呼び出しで更新するには、mergeItemに似た、本当に強力な方法であるmultiMergeをチェックしてください。

本当にいずれかのルートに行くことができます。データを複数のキーに分割すると、上記の方法に慣れるのに多分時間を費やしたいと思うでしょう。

Relmを見せるためのDavidの提案は、あなたの必要性に応じて、またあなたにとって価値があるかもしれません。

3

使いやすさのために、リスト全体を保存します。それ以来、各連絡先ごとに個別に作成したすべてのキーを個別に追跡する必要はありません。読み込み/保存するのが簡単になります(すべての連絡先をループするのではなく、ただ1つの関数呼び出し)。

しかし、これは主に個人的な好みです。 2つの方法のいずれにも実質的な制約はない。

1

私はクリスとフレデリックからの2つの良い答えに追加します: それはあなたのリストのサイズとあなたのドキュメントのサイズによって異なります。

1つのリスト全体を管理する方がはるかに簡単ですが、縮尺は変わりません(グローバル値のサイズによって計算が重くなります)。 アイテムごとに1つのキーを使用すると、複雑さが増しますが、スケールが追加されます。

個人的に私はすべてのものを1つのキーで使い始めましたが、現在は数百もの大きなドキュメントを処理しているときにパフォーマンスが明らかに低下するため、リファクタリングしています。

何千もの要素を扱っているなら、sqliteやrealmのような適切なデータベースに行くべきだと思いますが(現時点ではデバッグは問題です)/:あなたは[領域](HTTPSなどのデータベースライブラリを使用することを検討して

関連する問題