Reduxの状態で永続的な状態を持続
我々はWebアプリでページを更新するときは、状態は常に電子商取引のようないくつかの大規模なWebアプリケーションを構築しようとすると良いことではない初期値に戻ります.
ネイティブのJavaScriptを使用して手動で永続的な状態にすることができます
そこでここでReduxは、Reduxツールキットをサポートしています.
Reduxの主張
それは店に接続されているときにredux状態を持続するためのパッケージです.
それはすべてのパッケージのです.かなりきれい!
さらに話なしで、我々が実際に状態/店永続のためのReduxツールキットでそれをフックする方法に飛び込むことができます.我々は簡単に理解するためのカウンタアプリを使用します.
ステップ1
パッケージをインストール
ステップ2
必要なインポートをReduxストアに追加します.
我々には
Reduxはいくつかの機能を派遣し、公式Reduxツールキットガイドに従って、不要な警告やエラーを避けるために無視リストにそれらを追加する必要があります.
ステップ3
ストレージに保存されるPersistオブジェクトの設定を作成する必要があります.
ステップ4
還元剤を組み合わせる
ステップ5
永続的な還元を作成します
ステップ6
ミドルウェア内の無視リストに対してPersistence Reducerを還元器とExclusiveディスパッチ関数に割り当てます.最後に、ストアは次のようになります.
ステップ7
Rerexが我々に与える反応のように
手順8 :
すべての接続を行うと、今あなたの反応アプリはときにページの変更やページを再読み込みを保持することができます.
redux loggerでチェックすると、最初にチェックします
ラッピング
Reduxの永続的な理由のための素晴らしいライブラリですが、それは古いと旧式の、最後の更新方法は、いくつかのPRと問題Githubで2019年であった.私は、彼らがプロジェクトを復活させて、必要な問題を解決することを望みます.一方、任意の選択肢を知っていればコメントでお知らせください.
ネイティブのJavaScriptを使用して手動で永続的な状態にすることができます
localStorage.setItem()
しかし、正直に、我々は始めからすべてを書かなければなりません、そして、我々は州の構造を維持しなければなりません.そこでここでReduxは、Reduxツールキットをサポートしています.
Reduxの主張
それは店に接続されているときにredux状態を持続するためのパッケージです.
それはすべてのパッケージのです.かなりきれい!
さらに話なしで、我々が実際に状態/店永続のためのReduxツールキットでそれをフックする方法に飛び込むことができます.我々は簡単に理解するためのカウンタアプリを使用します.
ステップ1
パッケージをインストール
npm
or yarn
(ここでNPMを使います).npm i redux-persist
ステップ2
必要なインポートをReduxストアに追加します.
//store.js
import storage from 'redux-persist/lib/storage';
import { combineReducers } from 'redux';
import {
persistReducer,
FLUSH,
REHYDRATE,
PAUSE,
PERSIST,
PURGE,
REGISTER,
} from 'redux-persist';
Redux Persistはローカルストレージ、セッションストレージ、またはAsyncストレージのようなデータを保持するために異なるストレージを提供します.ローカルストレージを使用します.我々には
combineReducers
関数はすべてのリダクションを1つにグループ化し、reduxの持続に渡すことができます.Reduxはいくつかの機能を派遣し、公式Reduxツールキットガイドに従って、不要な警告やエラーを避けるために無視リストにそれらを追加する必要があります.
ステップ3
ストレージに保存されるPersistオブジェクトの設定を作成する必要があります.
//store.js
const persistConfig = {
key: 'counter',
storage,
};
キーは、PersistオブジェクトのIDを指定し、ストレージは使用されるストレージの種類を決定します.ステップ4
還元剤を組み合わせる
//store.js
const reducers = combineReducers({ counter: counterSlice });
ステップ5
永続的な還元を作成します
///store.js
const persistedReducer = persistReducer(persistConfig, reducers);
ステップ6
ミドルウェア内の無視リストに対してPersistence Reducerを還元器とExclusiveディスパッチ関数に割り当てます.最後に、ストアは次のようになります.
//store.js
export default configureStore({
reducer: persistedReducer,
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
},
}),
});
ステップ7
Rerexが我々に与える反応のように
Provider
アプリケーション全体をラップするコンポーネントは、同様に我々は得るPersistGate
Redux永続から.我々はそれを全体のアプリをラップする必要があります://index.js
import { persistStore } from 'redux-persist';
import { PersistGate } from 'redux-persist/integration/react';
//...
let persistor = persistStore(store);
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<PersistGate persistor={persistor}>
<App />
</PersistGate>
</Provider>
</React.StrictMode>,
document.getElementById('root')
);
The persistStore
storeオブジェクトは、PersistGate
コンポーネント.手順8 :
すべての接続を行うと、今あなたの反応アプリはときにページの変更やページを再読み込みを保持することができます.
redux loggerでチェックすると、最初にチェックします
PERSIST
アクションとリストアストアREHYDRATE
アクション.ラッピング
Reduxの永続的な理由のための素晴らしいライブラリですが、それは古いと旧式の、最後の更新方法は、いくつかのPRと問題Githubで2019年であった.私は、彼らがプロジェクトを復活させて、必要な問題を解決することを望みます.一方、任意の選択肢を知っていればコメントでお知らせください.
Reference
この問題について(Reduxの状態で永続的な状態を持続), 我々は、より多くの情報をここで見つけました https://dev.to/dawnind/persist-redux-state-with-redux-persist-3k0dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol