2016-11-01 3 views
0

redux/reactアプリケーションを構築する際には、データベースを使用してデータを保存する必要がありますか、すべてのものがreduxストアに入るだけでよいですか?Redux/Reactアプリケーションにデータベース用の場所がありますか?

データベースが必要な場合は、データベースの呼び出しに最適な場所はどこですか?

+2

Reduxはフロントエンドアプリケーションの状態を管理するだけです。データを保持しません。 –

+1

Reduxはフロントエンドアプリケーションの状態の状態のみを保存します。つまり、ページをリフレッシュした後も保持され、データベースに状態を保存する必要があります。通常、REST APIの呼び出しなどの標準メソッドを使用します。 –

+0

。私は初心者で、私はこれを得ていませんでした。 –

答えて

0

はい通常、状態データのシリアル化とデシリアライズを行う場合があります。これには、セッションやページのリフレッシュ間の状態を保持するだけでなく、アプリケーションがデータを消費するのに役立つクエリ機能も用意されています。

アプリケーションが接続されている場合は、データストレージを管理するリモートエンドポイントにアクセスできる可能性があります。このシナリオでは、mongodb、rethinkdb、sqlserverなどのサーバー側のデータベースが通常の転送方法です

接続されていないブラウザのみのアプリケーションについて話している場合は、常にlocalStorageに状態をシリアル化できます。私はこれを頻繁に行い、私は通常、ローカルデータを「照会」するための簡単なファサードを作成します。より強力なローカルデータベースが必要な場合は、そこにlocalStorageDBなどのパッケージがあります。ここで

が、これができるかを簡単に示したいくつかのコードです:

db.js

これはstore

import store from 'store' 

const clear = (key) => { 
    if (key) { 
    return store.remove(key) 
    } 
    store.clear() 
} 

const get = (key, defaultValue) => { 
    return store.get(key) || defaultValue 
} 

const set = (key, value) => { 
    store.set(key, value) 
} 

export { clear, get, set } 
と呼ばれる私が使用してのlocalStorageパッケージの正面に座っているファサードです

トランザクション.js

これはdbの使用例です。ここでは、セットを取得して設定してクリアします。transactions

import * as db from './db' 

const clear =() => { 
    db.clear('transactions') 
} 

const transactions = value => { 
    if (value) { 
    db.set('transactions', value) 
    } else { 
    return db.get('transactions', []) 
    } 
} 

export { clear, transactions } 
+0

トピックから少し外れていますが、アプリケーションのデータをブラウザに保存している場合(おそらく永続的にそこにとどまる)、localStorageは最良の選択ではありません。ドメインごとに最大5MBのストレージしか得られず、ユーザーが誤ってデータを消去するのは本当に簡単です。長期間のデータストレージは、[IndexedDB](https://developer.mozilla.org/en/docs/Web/API/IndexedDB_API)にはるかに適しています。 [localForage](https://github.com/localForage/localForage)を使用すると、IndexStDBバックエンドを持つlocalStorageのようなAPIを提供することができます。 –

関連する問題