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

推薦する

HTML ul 順序なしテーブルのアプリケーションネスト

順序なしリストのアプリケーションネストコードをコピーコードは次のとおりです。 <!DOCTYP...

JavaScript 関数はランダムな色の検証コードをカプセル化します (完全なコード)

数字、文字、またはランダムな色の数字と文字の混合で構成される n 桁の確認コード。以下に完全なコード...

スキン効果を実現するJavaScript(背景の変更)

この記事では、スキン変更効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

VueはCanvasを使用してランダムなサイズで重なり合わない円を生成します

目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...

MySQL 重複インデックスと冗長インデックスの例の分析

この記事では、例を使用して MySQL の重複インデックスと冗長インデックスについて説明します。ご参...

MySQLの読み書き分離により挿入後にデータが選択されなくなる問題を解決

MySQLは独立した書き込み分離を設定します。コードに次のものを書くと問題が発生する可能性があります...

vue-nuxt ログイン認証の実装

目次導入リンク始めるコードを読み進めてくださいプロキシ設定傍受を要求する異なるプレフィックスを持つイ...

Vue+element+springboot でファイルダウンロードの進行状況バー表示機能を実装する例

目次1. 需要背景2. 最適化計画3. 具体的な実施3.1 フロントエンドコード3.2 背景コード4...

innerHTML アプリケーション

ブランクのブログ: http://www.planabc.net/ innerHTML プロパティは...

React 手書きタブ切り替え問題

親ファイル React をインポートし、{useState} を 'react' か...

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

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

mysql8.0.0 winx64.zip 解凍バージョンのインストールと設定のチュートリアル

この記事はmysql8.0.0 winx64.zip解凍版のインストールチュートリアルを記録していま...

MySQLソースコマンドの使い方の紹介

目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...

よくある MySQL テーブル設計エラーの概要

目次間違い1: データの列が多すぎる誤解2: 共同クエリが多すぎる誤解3: ENUMの代わりにSET...

Vue.js で AntV X6 を使用する手順の例

目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...