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 8.0.17 解凍版のインストールと設定方法のグラフィックチュートリアル

インストール中に遭遇した問題を記録しておきますので、皆様のお役に立てれば幸いです。 1. ダウンロー...

Win7 で IIS7 Web および FTP サービスを完全にアンインストールする方法

昨日、パソコンにPHP開発環境をセットアップした後、Apacheサーバーを再起動するとエラーが続きま...

初心者のための入門チュートリアル⑤:ウェブサイト登録はとても簡単、簡単な登録のヒント

スペースを購入してウェブサイトを構築したことがある友人なら、ウェブサイトは正式に開設する前に登録する...

MySQLを監視するためのbinlogログ解析ツールの詳しい説明:Canal

Canal は、Java を使用して開発された Alibaba のオープンソース プロジェクトです...

MySQL インポート csv エラーの 4 つの解決策

これは今日私が踏んだ4つの落とし穴を記念したものです...落とし穴1:地元のせいエラー:エラー 39...

Kali に docker と portainer をインストールする方法

dockerの登場により、多くのサービスが徐々にハードウェアアーキテクチャへの依存から脱却しました。...

Linuxはバイナリモードを使用してmysqlをインストールします

この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...

シェルスクリプトはNginxのaccess.logのPVを定期的にカウントし、APIに送信してデータベースに保存します。

1. PVとIPの統計一日のPV(ページビュー)をカウントする cat access.log | ...

jQueryは記事の折りたたみと展開の機能を実装します

この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...

Reactの親コンポーネントと子コンポーネント間のデータ転送の詳細な説明

目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...

Zookeeper 不正アクセス テストの問題

目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...

Linux での JDK のインストール (OpenJDK のアンインストールを含む) の概要

1. openjdkを表示する rpm -qa|grep jdk 2. openjdk を削除します...

ニューススタイルのウェブサイトデザイン例25選

bmi ボイジャーピッチフォークアルスター食料品店チャウ真/斜めポスタこれは偽のDIYですクリエイテ...

React NativeとiOSの相互作用の詳細な説明

目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...

意外と知らないLinuxのSSHコマンドの使い方7選を徹底解説

システム管理者は複数のサーバーを同時に管理する場合があり、これらのサーバーは異なる場所に配置されてい...