[解決済み] React: useStateとuseRefのどちらを使うか?
2022-11-27 07:43:57
質問
私はReactについて読んでいます
useState()
と
useRef()
を"で。
フックFAQ
で、useRefとuseStateを同時に使って解決しているようなユースケースがあって、どっちが正しいのかわからなくなりました。
Hooks FAQ"より。 useRef()について :
useRef()フックはDOM Refのためだけではありません。ref "オブジェクトは、現在のプロパティが変更可能で、クラスのインスタンスプロパティと同様に任意の値を保持することができる汎用コンテナです。
とは useRef() :
function Timer() {
const intervalRef = useRef();
useEffect(() => {
const id = setInterval(() => {
// ...
});
intervalRef.current = id;
return () => {
clearInterval(intervalRef.current);
};
});
// ...
}
とは useState() :
function Timer() {
const [intervalId, setIntervalId] = useState(null);
useEffect(() => {
const id = setInterval(() => {
// ...
});
setIntervalId(id);
return () => {
clearInterval(intervalId);
};
});
// ...
}
どちらの例も同じ結果になりますが、どちらが良いのでしょうか?
どのように解決するのですか?
両者の大きな違いは、:
useState
は再レンダリングを引き起こします。
useRef
はしない。
両者に共通しているのは、どちらも
useState
と
useRef
は、再レンダリング後もデータを記憶しておくことができます。ですから、もし変数がビューレイヤーのレンダリングを決定するようなものであれば
useState
. Else use
useRef
これを読むことをお勧めします 品物 .
関連
-
[解決済み] useStateプロパティのフックにmap関数を使用する方法
-
[解決済み] ReactJS: Warning: setState(...): 既存の状態遷移の間に更新することはできません
-
[解決済み] プロップ `history` は `Router` で必須とマークされているが、その値は `undefined` である。
-
[解決済み] useMemo vs. useEffect + useState
-
[解決済み] Reactプロジェクトに.envファイルを追加する
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] React JSX内のループ
-
[解決済み] Reactのこの3つの点は何をするところなのでしょうか?
-
[解決済み】useState setメソッドが変更を即座に反映しない。
-
[解決済み] useEffectの無限ループ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] FontAwesomeの無料パッケージに含まれているアイコンのオブジェクト名はどこにあるのですか?
-
[解決済み] react - createMuiThemeとcreateThemeの違い。
-
[解決済み] configuration.module に未知のプロパティ 'loaders' があります。
-
[解決済み] sh: react-scripts: npm start の実行後にコマンドが見つからない。
-
[解決済み] React TypeScriptで作業しているときに、Jestが予期しないトークンに遭遇した
-
[解決済み] は、gatsby-imageで動作する良いreactのカルーセルコンポーネントはありますか?[って聞かれます。]
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。
-
[解決済み] Reactでグローバル変数を宣言する方法とは?
-
[解決済み] ReactでフォームラベルのユニークなIDを生成する方法は?