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文を実行します)

推薦する

nginx でディレクトリ ホワイトリストと IP ホワイトリストを設定する方法

1. ディレクトリホワイトリストを設定する:指定されたリクエストパスに制限を設定しないでください。た...

MySQLデータ遅延ジャンプの問題の解決策

今日は、データベース遅延ジャンプに関する別の典型的な問題を分析しました。このプロセスでは、参考のため...

派手なカルーセル効果を実現するJavaScript

この記事では、JavaScriptで派手なカルーセル効果を実装する2つの方法を紹介します。具体的な内...

Ubuntu Linuxシステムをインストールするときにハードディスクをパーティション分割する最も合理的な方法の詳細な説明

Windows または Linux オペレーティング システムをインストールするかどうかに関係なく、...

外部ネットワークアクセスを許可するためのMysql5.6の設定手順の詳細を共有する

最近、MySQL 5.6 を導入しましたが、デフォルトでは MySQL はローカル サービスのみを許...

Nginx ログ出力のリクエスト後パラメータを設定する方法

【序文】当プロジェクトの SMS 機能は、第三者に接続することです。第三者からの元の受信確認要求は ...

XHTML の IE 条件付きコメント

<br />条件付きコメントはIEシリーズ製品上でXHTMLコード処理を分離して行うこと...

MySQL のロック待機とデッドロック問題の分析

目次序文: 1. ロック待機とデッドロックを理解する2. 現象の再発と治療要約:序文: MySQL ...

HTML の blockquote タグの使用と美化

ブロック引用の定義と使用法<blockquote> タグは引用ブロックを定義します。 &...

MySQL マスタースレーブレプリケーションでエラーをスキップする方法

1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...

Linux には make コマンドがありません (make: *** ターゲットが指定されておらず、makefile または make コマンドのインストール方法が見つかりません)

知らせ! ! !この状況は、実際には仮想マシンのインストール中に回避できます。次回仮想マシンをテスト...

Dockerコンテナの接続と通信の実装

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。 Docke...

MySQLユーザー権限テーブルについての簡単な説明

MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql...

SEATAトランザクションサービスDockerのデプロイ手順の詳細説明

1. データベース認証ステートメントを作成する > データベース seata を作成します。 ...

ミニプログラムは左スライドのドロワーメニューをネイティブに実装します

目次WXS レスポンス イベントプランAページ構造とスタイルWXS イベントコールバック関数WXS ...