Nr_NarumiumReactのグローバル変数を管理するTweetReactでグローバルに変数を使いたい機会ができた。いえば使い始めのころにNativeでグローバル変数の利用に右往左往してました。今は大分慣れてきたので色々な方法を考えてみます。単純な変数として扱う一番安易な方法としてグローバルオブジェクトへの追加を考える。windowなりglobalなり使えるグローバルオブジェクトを探してそこに入れる。//101まあ動くけどさすがにどうかと思う、管理できる気がしない。変数汚染は防いで一応管理している感を出す。//10これらの方法ではReactが変更を感知できない。コンポーネントの更新や再描画をしてくれないので用途は限定的です。Reactライフサイクルに対応する値を複数コンポーネントで扱いたければ共通の親コンポーネント(多くはRoot)でstateを管理して使用コンポーネントへpropsをバケツリレーで渡す方法があります。//変更用の関数もpropsに{this.props.gv.value}特に難しいことを考えずに多くのパターンで使えます。アプリが大きくなったり細分化すると受け渡しが面倒ですし、propsのこの値ってどこのやつだよみたいになったりします。github検索するといくらでも出てくるstateを一元管理するライブラリ。reduxで状態管理してreact-reduxでReactと連携するような感じだと思います。これならグローバル変数もなにもない。用途の割に学習することが多そうなのと個人でちょっとしたものを作るにはオーバースペックな気がするので使わなくていいなら使いたくないです。2018)で公式サポートされた機能。Reduxでやっていたことの一部が公式APIでできるようになる。管理したい値をコンテクストに任せて配信/購読を書くことが出来ます。説明を読むだけだと少し複雑に見えますが実際に使ってみるとかなりシンプルです。APIのpolyfillであるcreate-react-contextを拡張したもの。unstated-nextはReactの新しいAPI対応バージョン(なんと38行)。大雑把に見るとContextをContainerとしてラップして使いやすくしている。APIの勉強がてらに読んでみるのもいいと思います。APIを使うのがいいと思う。サードパーティーのライブラリを使わなくていいというのが最大の利点(パッケージを追加して使用するのって意外と面倒)。APIのコンテナを書いているとunstated-nextをみたとき「おお、なるほど」となりますが、まだ柔軟性が高い(本来良いこと)ように感じます。小さいアプリならhookやinitialStateを渡す形でなく、コンテナとコンテキストを提供するだけの疎な作りの方が管理しやすい気がする。value={useMyState()}>{children}</Context.Provider>;stateとaction、Contextを一元管理して合わせてデフォルトで配信用コンポーネントを提供するシンプルコンテナ。テストをする気すらない。1コンテナで管理できるような単純用途ならこれで十分。あとRedux、これはもう本気で必要にかられたときに一気にやるくらいしか使うことがない気がしています。代替手段があるうちはきっと使わない。コメントをキャンセルメールアドレスが公開されることはありません。