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

推薦する

Docker に Tomcat をインストールし、Springboot プロジェクトの WAR パッケージをデプロイする方法

簡単です。チュートリアルを見てください。ブロガー1. まずdockerを起動するサービスdocker...

Founder フォント ライブラリの中国語と英語のファイル名比較表

Founder Type Library は、Founder Type Library ビジネス チ...

CSS で隠し要素を実現する 7 つの興味深い方法

序文非表示要素の 3 つの属性である表示、可視性、不透明度の類似点と相違点は、フロントエンドの就職面...

xHTML タグと HTML タグの違いは何ですか?

すべてのタグは小文字でなければなりませんXHTML では、すべてのタグは小文字でなければなりません。...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

Vue ページをリフレッシュするために provide と injection を適用する

目次方法1: 関数を直接呼び出す方法2: provide / inject (静的更新) を使用する...

MySql8.0.19 インストールピットレコードを共有する

前回の記事ではMySql8.0.19のインストール手順を紹介しました。必要な方はクリックしてご覧くだ...

Mysql varchar型の合計操作例

友人の中には、データベースについて学習しているときに、テーブル構造を作成するときに誤ってフィールドを...

HTML 基本ノート (推奨)

1. ウェブページの基本構造: XML/HTML コードコンテンツをクリップボードにコピー<...

Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析

記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...

Docker、プレーヤー機能を備えたCMSオンデマンドシステムを構築

目次文章1. 機械を準備する2. Dockerをインストールする1. 依存パッケージをインストールす...

Mysql5.7 で中国語の文字化けの問題を解決する

MySQL 5.7 を使用すると、Web ターミナル経由でデータベースに中国語の文字を書き込むと文字...

CentOS 7のインストールと設定方法のグラフィックチュートリアル

この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...