0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

React ReduxのTypescriptテンプレートを使った開発について

Posted at

目的

  • Redux+Typescriptのテンプレートの理解する
  • Reduxのデザインパターンを確認し、コンポーネントを追加するときの開発の指針を立てる

Redux+Typescriptテンプレート概要

  • Redux Toolkit と React Redux の React コンポーネントを統合したReactアプリのテンプレートでReduxの公式ドキュメントで推奨されている
  • 下記のコマンドでテンプレートをインストールできる
    npx create-react-app my-app --template redux-typescript
  • 参考:Reduxのコンセプト・Dataflow

テンプレートの構造

  • ディレクトリ、ファイル構成(コーディングに関係なさそうなファイルは割愛)
├── src
│   ├── index.tsx     # Rootコンポーネントを呼び出す
│   ├── App.tsx       # Rootとなるコンポーネント
│   ├── <略>
│   ├── app                # アプリ全体で利用するオブジェクト、typeの定義
│   │   ├── hooks.ts       ## Hookのtype定義
│   │   └── store.ts       ## Hook(DispatchとSelector)のtype、RootStateの定義
│   └── features                 # 機能ごとのコンポーネント
│       └── counter              ## counter機能のコンポーネント
│           ├── counterSlice.ts  ### Slice stateとActionのtype定義
│           └── Counter.ts       ### コンポーネント本体

コンポーネント追加時の流れ(案)

  1. 追加したいページをどんなコンポーネント(機能)に分けるべきか検討
  2. 各コンポーネントのフォルダをfeatures配下に作成
  3. コンポーネント本体のファイルとSliceファイルを2.のフォルダに作成
  4. 新しいコンポーネントで参照するstateのSelector、DispatchをSliceファイルに記述
    • 同期処理はreducerに
    • 非同期処理・ややこしい処理はextraReducerに(必要ならThunkActionを作成)
    1. をコンポーネント本体のファイルでimportして使う
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?