ReactHooks バッチ更新状態とルートパラメータの取得例の分析

ReactHooks バッチ更新状態とルートパラメータの取得例の分析

1. 一括更新の方法

[Hooks] では、ステータスを個別に更新すると、ページが複数回レンダリングされる可能性があります。

'react' から useState をインポートします。
import { stable_batchedUpdates } from 'react-dom'; // ステータスをバッチで更新するときに使用します import React from 'react';
const 例 = () => {
  定数[count, setCount] = useState(0);
  定数[count1, setCount1] = useState(0);
  定数[isClick, setCount2] = useState(0);
  setTimeout(関数() {
    セットカウント(1)
    セットカウント1(1)
    setCount2(1)
  }, 1000);
  console.log('レンダリング')
  戻る (
    <span>コンソール出力を確認してください。 </span>
  );
}
export default 例;

コンソール出力

レンダリング レンダリング レンダリング レンダリング レンダリング

したがって、この問題を回避するにはバッチ更新を使用する必要があります。

これはsetStateを通じてclassに実装されます

hooks unstable_batchedUpdatesを通じて実装できる

'react' から useState をインポートします。
import { stable_batchedUpdates } from 'react-dom'; // ステータスをバッチで更新するときに使用します import React from 'react';
const 例 = () => {
  定数[count, setCount] = useState(0);
  定数[count1, setCount1] = useState(0);
  定数[isClick, setCount2] = useState(0);
  setTimeout(関数() {
    不安定なバッチ更新(() => {
      セットカウント(1)
      セットカウント1(1)
      setCount2(1)
    })
    // これは処理中のイベントです}, 1000);
  console.log('レンダリング')
  戻る (
    <span>コンソール出力を確認してください。 </span>
  );
}
export default 例;

コンソール出力

レンダリング レンダリング

2. フックがルーティングパラメータを取得する方法

routeにパラメータを指定して、コンポーネントパラメータをURL経由で直接渡すこともあります。

<ルート パス="/test/:name" コンポーネント={統計} />

クラスでは、 this.props.match.paramsを通じてURLのパラメータを取得できます。

Hooks の場合は、次のように取得できます。

'react' から useState をインポートします。
'react' から React をインポートします。
const 例 = ({ match }) => {
  const [名前] = useState(match.params.name);
  戻る (
    <p>名前は次のとおりです: <span style={{ fontWeight: 600 }}>{name}</span></p>
  );
}
export default 例;

match.paramsはルート内のパラメータです

実行効果

上記は、ReactHooks で状態を一括更新し、ルーティングパラメータを取得する例の分析の詳細内容です。ReactHooks で状態を一括更新し、ルーティングパラメータを取得することの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • React Hook: Effect Hookの使い方
  • 3分でReact-hooksとサンプルコードを理解する
  • React の 10 個のフックの紹介
  • Reactでカスタムフックを作成する方法を教えます
  • React Hooksの詳細な説明
  • React Hook: ステートフックの使い方

<<:  新しい要素を作成する3つの方法のまとめ

>>:  Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

推薦する

MySQL 5.7.20 無料インストールバージョンの設定方法グラフィックチュートリアル

インターネット上で多くの関連チュートリアルを見てきましたが、インストール プロセスにはまだいくつかの...

nginx が動的と静的の分離を実装する方法の例

目次server1にnginxをデプロイするサーバーにlnmpを展開するノード3にhttpdをデプロ...

CentOS 7.6 Telnetサービス構築プロセス(Opensshアップグレードバトル第一弾のバックアップトランスポートライン構築)

不明な点があるときはいつでも、Blog Park にアクセスして、いつでも答えやインスピレーションを...

Vue要素はテーブルの追加、削除、データの変更を実装します

この記事では、テーブル内のデータを追加、削除、変更するためのvue要素の具体的なコードを参考までに共...

新しい CSS :where および :is 疑似クラス関数とは何ですか?

:is と :where とは何ですか? :is()と:where()は、セレクターを作成するとき...

LinuxでRPMを使用してmysql5.7.17をインストールする

LinuxでのMySQL5.7 rpmのインストール方法を参考までに記録します。具体的な内容は以下の...

MySQL ストアド プロシージャの概念、原則、一般的な使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの概念、原則、および一般的な使用法につ...

Linuxで新しいユーザーを作成し、指定されたディレクトリへの権限を付与する

1 ユーザーを作成し、ユーザーのルートパスとパスワードを指定します useradd -d /home...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...

JSはユーザー登録インターフェース機能を実装します

この記事の例では、ユーザー登録インターフェース機能を実装するためのJSの具体的なコードを参考までに共...

Windows Server 2016 で Flash を有効にする方法

最近、VMware Horizo​​n を導入してテストしましたが、そのコンソールにはデフォルトで ...

MySQL Strict Modeの知識ポイントの詳細な説明

I. 厳密モードの説明MySQL 5.0 以降の厳密モード (STRICT_TRANS_TABLES...

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

MySQL インデックス データ構造の詳細な分析

目次概要インデックスデータ構造バイナリツリー赤黒木BツリーB+ツリーハッシュ索引InnoDB インデ...

MySQL 5.7.23 winx64 のインストールと設定方法のグラフィックチュートリアル (win10 の場合)

この記事はMySQL 5.7.23 winx64のインストールチュートリアルを記録します。具体的な内...