MaximizedOwl / among-status

Helping tool playing for Among Us.
https://among-status.web.app/
1 stars 0 forks source link

状態管理のベストプラクティスを調べる。 #4

Open MaximizedOwl opened 3 years ago

MaximizedOwl commented 3 years ago

現状(問題)

現状(の問題)に対する現時点での対策方針

全てのタブが乗っているHome.jsに状態を管理させて、各タブでそれにアクセスするようにすればいいのではないか。

知りたいこと

対策方針であっているのか、それとも各コンポーネントに状態を管理させ、やり取りするほうがいいのか。

補足

利用しているのはHooksのため、Hooksでのベストプラクティスを探す。

MaximizedOwl commented 3 years ago

どうやら、useContextを使えばできるようす。 引き続き調べる。

下記は参考文献 https://qiita.com/seira/items/fccdf4e73c59c491558d

MaximizedOwl commented 3 years ago

useReducerもいりそう? 引き続き見る。

https://qiita.com/seira/items/2fbad56e84bda885c84c

MaximizedOwl commented 3 years ago

そもそもルート(共通)コンポーネントで管理するのか、状態管理専用のなにかを作るのかという部分にも触れた参考記事 https://numb86-tech.hatenablog.com/entry/2019/12/17/155931

MaximizedOwl commented 3 years ago

HooksとContentAPIを使うことで、Ruduxを使わずにStoreのような状態管理ができる技術のついての記事 https://qiita.com/GenkiAma/items/f2e3a48b480a89df7734

MaximizedOwl commented 3 years ago

現状の選択肢整理

  1. Storeを設けることで状態をグローバルで管理する。
  2. 共通コンポーネントに状態をもたせて、共有?
MaximizedOwl commented 3 years ago

どうやら、useContextを使えばできるようす。 引き続き調べる。

下記は参考文献 https://qiita.com/seira/items/fccdf4e73c59c491558d

このサンプルを動かしてみた結果わかったのは、useContextを利用するだけでは、バケツリレーをせずに状態を渡せるようになるだけで、状態を渡した(取得した?)先で変更した状態の値を、元の状態に反映させて、保持させ、再表示(反映)させるようなことはできない。

では、それをできるようにするには?

MaximizedOwl commented 3 years ago

useReducerとuseContextを利用している例 https://qiita.com/nishiurahiroki/items/d2733e7108e6e59a9930

MaximizedOwl commented 3 years ago

Recoil https://ics.media/entry/210224/

ContextAPIの問題点を解消するためにFacebookから提唱されているものらしい。

MaximizedOwl commented 3 years ago

useReducerをより深く知る https://qiita.com/uhyo/items/cea1bd157453a85feebf

MaximizedOwl commented 3 years ago
MaximizedOwl commented 3 years ago

mizchis氏 https://mizchi.dev/202005271609-react-app-context

MaximizedOwl commented 3 years ago

storeでは

players: {
  red: {
    isHoge: true,
    isHuga: false
  },
  blue: {
    isHoge: true,
    isHuga: false
  }
}

のようなことは可能なのか

MaximizedOwl commented 3 years ago

Rudux vs Hooks(useReducer + useContext) https://qiita.com/stranger1989/items/4819b5e4539caea828bf