ホームページ ウェブフロントエンド フロントエンドQ&A 反応ジャンプ前のページステータスを記憶する方法

反応ジャンプ前のページステータスを記憶する方法

Jan 06, 2023 pm 01:59 PM
react ジャンプ

React は、ジャンプする前にページのステータスを記憶するメソッドを実装します: 1. パスの変更を監視し、パスが変更されたときに lastPath と currentPath を redux ストアに更新します; 2. ページ A を離れるときに、ページのステータスを次の場所に保存します。 redux ストア内; 3. redux ストアの lastPath がページ B のパスと等しい場合、A は B によって復元された状態に戻されたとみなされ、そうでない場合は復元されません。

反応ジャンプ前のページステータスを記憶する方法

このチュートリアルの動作環境: Windows 10 システム、react18.0.0 バージョン、Dell G3 コンピューター。

反応する前にページのステータスを記憶するにはどうすればよいですか?

React ページは最後の状態を保持するために戻ります

要件

  • ページ A Jump ページ B に移動してから、ページ A に戻ります。ページ A は、終了する前に状態を復元する必要があります。

  • ページ A とページ B への入り口は複数あります。ページ A は状態を復元しません。

##設計

  • パスの変更をリッスンし、パスが変更されたときに lastPath と currentPath を redux ストアに更新します。

  • ページ A を離れるとき、ページのステータスを redux ストアに保存します。

  • ページ A に入るとき、redux ストアの lastPath が等しい場合は、ページ B のパスにアクセスした場合、A は B によって復元された状態に戻されたと見なされます。そうでない場合は復元されません。

実装

このプロジェクトでは、react-router dva ライブラリを使用しており、実装部分には関連テクノロジが含まれます。

パスの変更を監視し、履歴を通じてパスの変更を監視し、lastPath と currentPath を記録します。ここでは、DVA サブスクリプションは履歴をサブスクライブするために使用され、パスが変更されると、パス情報が状態に同期されます。

const model = {
  namespace: "global",
  state: {
    pathName: { last: "", current: "" },
  },
  reducers: {
    setPathName(state: any, { pathName }: any) {
      state.pathName.last = state.pathName.current;
      state.pathName.current = pathName;
    },
   
  effects: {
  },
  subscriptions: {
    setup({ history, dispatch }: any) {
      return history.listen(({ pathName }: any) => {
        dispatch({ type: "global/setPathName", pathName });
      });
    }
  }
};
ログイン後にコピー

ページがアンロードされるときにステータスを Redux ストアに同期します。たとえば:

componentWillUnmount() {
    const { dispatch } = this.props;
    const { activeKey } = this.state;
    dispatch({
      type: "projectInfo/setProjectInfoPage",
      payload: { activeKey }
    });
  }
ログイン後にコピー

ページがリロードされるとき。たとえば:

state = {
    activeKey: pathToRegexp(PagePath.B).exec(pathName.last) ? activeKey : ""
  };
ログイン後にコピー

pathToRegexp は、 path-to-regexp ライブラリ、使用されます。 ルート マッチング。ここでは、前のページがページ B であるかどうかを判断するために使用されます。

その他の解決策

ページ A がページ B によって返されるかどうかを判断します。ページ B が返されたときに状態を追加します。history.push({ pathname: path, state: {from } }); でAページに入り、状態に応じてBページから戻るかどうかを判断します。しかし、B に複数の入り口がある場合、戻るときにページのソースを知る必要があり、そうでないと戻ることができず、ロジックが少し複雑になり、エラーが発生しやすくなります。

概要

この記事では、ページに複数の入り口と出口がある状況に適した、最後の状態を保持するページリターンのソリューションを提案します。このソリューションでは、履歴の変更を監視し、最後のページ アドレスを記録する方法を使用して、状態を復元するかどうかの基準を提供します。

推奨される学習: 「

react ビデオ チュートリアル

以上が反応ジャンプ前のページステータスを記憶する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

React フロントエンドとバックエンドの分離ガイド: フロントエンドとバックエンドの分離と独立したデプロイメントを実現する方法 React フロントエンドとバックエンドの分離ガイド: フロントエンドとバックエンドの分離と独立したデプロイメントを実現する方法 Sep 28, 2023 am 10:48 AM

React フロントエンドとバックエンドの分離ガイド: フロントエンドとバックエンドの分離と独立したデプロイメントを実現する方法、特定のコード例が必要です 今日の Web 開発環境では、フロントエンドとバックエンドの分離がトレンドになっています。フロントエンド コードとバックエンド コードを分離することで、開発作業がより柔軟かつ効率的になり、チームのコラボレーションが促進されます。この記事では、React を使用してフロントエンドとバックエンドの分離を実現し、それによって分離と独立したデプロイの目標を達成する方法を紹介します。まず、フロントエンドとバックエンドの分離とは何かを理解する必要があります。従来の Web 開発モデルでは、フロントエンドとバックエンドが結合されています。

React と Flask を使用してシンプルで使いやすい Web アプリケーションを構築する方法 React と Flask を使用してシンプルで使いやすい Web アプリケーションを構築する方法 Sep 27, 2023 am 11:09 AM

React と Flask を使用してシンプルで使いやすい Web アプリケーションを構築する方法 はじめに: インターネットの発展に伴い、Web アプリケーションのニーズはますます多様化および複雑化しています。使いやすさとパフォーマンスに対するユーザーの要件を満たすために、最新のテクノロジー スタックを使用してネットワーク アプリケーションを構築することがますます重要になっています。 React と Flask は、フロントエンドおよびバックエンド開発用の 2 つの非常に人気のあるフレームワークであり、うまく連携してシンプルで使いやすい Web アプリケーションを構築します。この記事では、React と Flask を活用する方法について詳しく説明します。

React と RabbitMQ を使用して信頼性の高いメッセージング アプリを構築する方法 React と RabbitMQ を使用して信頼性の高いメッセージング アプリを構築する方法 Sep 28, 2023 pm 08:24 PM

React と RabbitMQ を使用して信頼性の高いメッセージング アプリケーションを構築する方法 はじめに: 最新のアプリケーションは、リアルタイム更新やデータ同期などの機能を実現するために、信頼性の高いメッセージングをサポートする必要があります。 React はユーザー インターフェイスを構築するための人気のある JavaScript ライブラリであり、RabbitMQ は信頼性の高いメッセージング ミドルウェアです。この記事では、React と RabbitMQ を組み合わせて信頼性の高いメッセージング アプリケーションを構築する方法を紹介し、具体的なコード例を示します。 RabbitMQ の概要:

React Router ユーザーガイド: フロントエンドルーティング制御の実装方法 React Router ユーザーガイド: フロントエンドルーティング制御の実装方法 Sep 29, 2023 pm 05:45 PM

ReactRouter ユーザーガイド: フロントエンドルーティング制御の実装方法 シングルページアプリケーションの人気に伴い、フロントエンドルーティングは無視できない重要な部分になりました。 React エコシステムで最も人気のあるルーティング ライブラリとして、ReactRouter は豊富な機能と使いやすい API を提供し、フロントエンド ルーティングの実装を非常にシンプルかつ柔軟にします。この記事では、ReactRouter の使用方法と具体的なコード例を紹介します。 ReactRouter を最初にインストールするには、次のものが必要です

React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法 React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法 Sep 27, 2023 pm 02:25 PM

React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法 はじめに: ビッグ データとリアルタイム データ処理の台頭により、リアルタイム データ処理アプリケーションの構築が多くの開発者の追求となっています。人気のあるフロントエンド フレームワークである React と、高性能分散メッセージング システムである Apache Kafka を組み合わせることで、リアルタイム データ処理アプリケーションを構築できます。この記事では、React と Apache Kafka を使用してリアルタイム データ処理アプリケーションを構築する方法を紹介します。

指定したページにジャンプするPHPコードを実装する方法 指定したページにジャンプするPHPコードを実装する方法 Mar 07, 2024 pm 02:18 PM

Web サイトやアプリケーションを作成するとき、特定のページにジャンプする必要が生じることがよくあります。 PHP では、いくつかの方法でページ ジャンプを実現できます。以下に、header() 関数の使用、JavaScript コードの使用、メタ タグの使用など、3 つの一般的なジャンプ方法を示します。 header()関数の使い方 header()関数は、PHPで独自のHTTPヘッダ情報を送信するために使用される関数で、ページジャンプを実装する際に組み合わせて使用​​できます。以下は、

PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには? PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには? Mar 15, 2024 pm 05:48 PM

PHP、Vue、React: 最適なフロントエンド フレームワークを選択するには?インターネット技術の継続的な発展に伴い、フロントエンド フレームワークは Web 開発において重要な役割を果たしています。 PHP、Vue、React は 3 つの代表的なフロントエンド フレームワークであり、それぞれに独自の特徴と利点があります。使用するフロントエンド フレームワークを選択するとき、開発者はプロジェクトのニーズ、チームのスキル、個人の好みに基づいて情報に基づいた決定を下す必要があります。この記事では、PHP、Vue、React の 3 つのフロントエンド フレームワークの特徴と用途を比較します。

3 秒でページジャンプを実装する方法: PHP プログラミングガイド 3 秒でページジャンプを実装する方法: PHP プログラミングガイド Mar 25, 2024 am 10:42 AM

タイトル: 3秒でできるページジャンプの実装方法: PHPプログラミングガイド Web開発においてページジャンプは一般的な操作ですが、通常はHTMLやJavaScriptのメソッド内のメタタグを使ってページにジャンプします。ただし、特定のケースでは、サーバー側でページ ジャンプを実行する必要があります。この記事では、PHPプログラミングを使用して、3秒以内に指定したページに自動でジャンプする機能を実装する方法と、具体的なコード例を紹介します。 PHP を使用したページジャンプの基本原理 PHP は一種の

See all articles