62080


現在Reactを使っているのですが、stateに格納するデータは表示に関係するものだけ入れるべきなのでしょうか？

なぜこのような質問をするかというと、私が調べた限りsetStateで値を設定した場合、再描画が走るという認識です。  
であれば設計方針としては、描画に直接的に関係ないデータはstateに格納するのではなく、インスタンス変数などに格納するべきなのでしょうか？

抽象的な質問ですがご回答よろしくお願いします。


CC BY-SA 4.0
2020-01-07T08:42:40.983
62033
2020-01-08T20:34:05.423
15186
question
reactjs
Reactのstateに格納するデータは表示に関係するものだけを格納するべきなのでしょうか？


想定されているケースを私が正しく認識できていないかもしれないので、一様に `state` に入れるべきではない or
入れてもよい、とは回答できませんが、参考になる情報を記載します。

そのデータが、描画を含む React コンポーネントのライフサイクルに関係しないなら `state` に含める必要はありません。React
公式ドキュメントでも `state` を使っていない例がありますし、

> 何かデータフローに影響しないデータ（タイマー ID のようなもの）を保存したい場合に、追加のフィールドを手動でクラスに追加することは自由です。

という記述もあります。

<https://ja.reactjs.org/docs/state-and-lifecycle.html>

* * *

> 私が調べた限りsetStateで値を設定した場合、再描画が走るという認識です。

デフォルトのライフサイクルはその認識で正しいですが、`shouldComponentUpdate` を使って `setState`
後に不要な再描画を行わないようにもできます。

<https://ja.reactjs.org/docs/optimizing-performance.html>


CC BY-SA 4.0
2020-01-08T20:34:05.423
62080
2020-01-08T20:34:05.423
32959
62033
answer