Redux & Reduxtoolkit
(参考URL)
next.js + typescript で Redux Toolkit を使う最小サンプル
Getting Started with Redux(公式)
Redux Toolkit TypeScript Quick Start
Next.js + typescript のインストール
npx create-next-app . --ts
reduxtoolkitとreact-reduxのインストール
yarn add @reduxjs/toolkit react-redux
では、シンプルでも動く構成で作っていきます。
やることは
- 型と初期値を定義
- slice(機能)の定義
- store(貯蔵データ)の定義
です。
構造を作る
シンプルに、ルートディレクトリにstoreディレクトリを作成し、その中にstore.tsxを作成します。
mkdir store touch store.tsx
Storeの作成
■型と初期値の定義
ここからは
store > store.tsx
に書いていきます。
必要なライブラリをインストールします。
import { configureStore, createSlice } from "@reduxjs/toolkit";
初期値の型を決めていきます。
数値型と文字型の2種類のデータを扱う想定です。
//取りまとめの初期値の型 export type RootState = { counter: CounterState; address: AddressState; } type CounterState = { value: number; } type AddressState = { zipCode: string; }
初期値を決めていきます。
const counterInitialState: CounterState = { value: 0, } const addressInitialState: AddressState = { zipCode: "textdata", }
機能(slice)を決めていきます。
createSliceは React-toolkit の組み込み関数です。
//slice(機能)の作成 export const counterSlice = createSlice({ name: "counter", initialState: counterInitialState, reducers: { increment(state){ state.value++; } } }); export const addressSlice = createSlice({ name: "address", initialState: addressInitialState, reducers: {}, })
貯蔵庫(store)を決めていきます。
configureStore は React-toolkit の組み込み関数です。
//storeの作成 export const store = configureStore({ reducer: { counter: counterSlice.reducer, address: addressSlice.reducer } });