React ルーティング リンク構成の詳細

React ルーティング リンク構成の詳細

1. 属性へのリンク

(1)ルーティングパスを配置する
(2)指定された形式でオブジェクトを配置する
{パス名:"/xx",検索:'?キーと値のペア',ハッシュ:"#xxx",状態:{キーと値のペア}}
パス名、検索、ハッシュを URL パスに自動的に連結します。state は渡されたパラメータであり、props を出力することでオブジェクト内の情報を表示できます。
this.props.location.state.状態のデータを取得するためのキー名

2. リンクの置換属性

置換を追加すると、ジャンプ前のページが現在のページに置き換えられ、現在のページのみがスタックにプッシュされます。

3. リンクパラメータ転送

パスの後に「/key value」を追加します
ルートとパスの後に「/:キー名」を追加します
コンポーネント内の関数コンポーネント: 最初に props パラメータを渡し、次に props.match.params.key 名クラスコンポーネント: this.props.match.params.key 名

コード例:

React をインポートします。{Component} を 'react' からインポートします。
// 'react-router-dom' から {Route、BrowserRouter、Link} をインポートします
// BrowserRouter を Router に名前変更
'react-router-dom' から { BrowserRouter を Router、Link、Route としてインポートします。
'antd' から Button をインポートします。
'./App.css' をインポートします。

関数ホーム()
{
  戻る(
      <div>管理者ホームページ</div>
    )
}

関数Me(props)
{
  console.log(プロパティ)
  戻る(
      <div>管理者マイ</div>
    )
}

関数 Product(props)
{
  戻る(
      <div>管理者製品ページ:{props.match.params.id}</div>
    )
}

デフォルトクラスAppをエクスポートし、Componentを拡張します。
   コンストラクタ()
    {
      素晴らしい();
    }
    与える()
    {
    パスがオブジェクト形式で記述され、以下と同じである場合、パス名、検索、ハッシュは URL パスに自動的に連結され、状態はコンポーネントに渡されるデータになります*/
      obj={pathname:"/me",search:'?username=admin',hash:"#abc",state:{msg:'hello'}}とします。
      戻る(
        <div id='アプリ'>
      *複数の BrowserRouter を配置できます*/
          <ルーター>
        
        コンポーネントは HTML コンテンツも返すため、コンポーネントとして機能する関数を通じて HTML コンテンツを直接返すことはできますが、HTML コンテンツを直接記述することはできません*/
          <div>  
            <Route path="/" exact component={()=><div>ホーム</div>}></Route>
            <ルート パス="/product" コンポーネント={()=><div>製品</div>}></ルート>
            <ルート パス="/me" コンポーネント={()=><div>me</div>}></ルート>
          </div>
          {/*<Route path="/" component={function(){return <div>首页2</div>}}></Route>*/

          </ルーター>
        

          
          * * BrowserRouter 内に他のコンテンツをラップするためのルート コンテナは 1 つだけです */
        *basename='/xx' を追加した後、リンクをクリックして他のルートにジャンプすると、URL はルート名の先頭に /xx を追加するため、ルート パスと管理者が追加されたルート パスの両方がルートと一致するようになります*/
          <ルーターのベース名='/admin'>
            <div>
                <div className='nav'>
                    <Link to='/'>ホーム</Link>
                    <Link to='/product/123'>製品</Link>
                  対応するコンポーネントで props を出力して渡されたオブジェクトの情報を表示したり、replace を追加してジャンプ前のページを現在のページに置き換えたり、現在のページのみをスタックにプッシュしたりできます*/
                    <Link to={obj} replace>パーソナル センター</Link>
                </div>

                <ルート パス="/" 正確なコンポーネント = {ホーム}></ルート>
                <ルート パス="/product/:id" コンポーネント={製品}></ルート>
                <ルート パス="/me" 正確なコンポーネント = {Me}></ルート>
            </div>
          </ルーター>

        </div>
        
      )
    }
}

これで、React Routing Link の詳細設定に関するこの記事は終了です。React Routing Link に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactルーティングの各バージョンのリダイレクト方法の詳細な説明
  • react-router JS 制御ルーティングジャンプの例
  • Reactがコンポーネント内のルーティングパラメータを取得する方法の詳細な説明
  • react-router4でネストされたルートを使用する方法
  • React-router4ルート監視の実装
  • ルーティング許可制御を実装するためのReact router4+reduxメソッド
  • React-router v4 ルーティング設定方法の概要
  • React Router 4.0 以降のルーティング アプリケーションの詳細な説明

<<:  ウェブデザインにおけるキーワード設計手法の紹介

>>:  MySQL初心者のための基本操作のまとめ

推薦する

MySQL トランザクション分離はどのように実現されますか?

目次同時シナリオ書き込む読む読む読み取り-書き込みと書き込み-読み取りMySQL のロック行レベルロ...

dockerでopenGaussデータベースを構成する方法の詳細な説明

Windowsユーザー向けDocker で openGauss を使用するopenGaussイメージ...

ウェブデザインでは、まずウェブサイトの包括的なイメージの位置付けが必要です。

⑴ 内容によって形式が決まります。まず内容を充実させ、次にブロックに分割し、トーンを決め、最後に細部...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...

MySQLトランザクションの特徴と分離レベルについてお話ししましょう

インターネットにはすでにこの種の記事が溢れていますが、私がこれをまだ書いている理由は単純です。それは...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

MySql はコミットする必要がありますか?

MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...

VMware15 の Deepin インストール詳細チュートリアル (画像とテキスト)

序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...

CSS の overflow: hidden の使い方 (オーバーフローの非表示とフロートのクリア)

オーバーフロー非表示指定された高さを超えるテキストや画像情報を非表示にすることを意味します。 <...

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...

MySQLを使用して列内の異なる値の数をカウントする例

序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...

MAC で MySQL のデフォルトの文字セットを utf8 に変更する方法

1. デフォルトでインストールされているMySQLの文字セットを確認するmysql> '...

子コンポーネントを通じて親コンポーネントのプロパティを変更するための Vue のさまざまな実装方法

目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...

HTMLタグの書き方でよくある間違い

注意を払う必要があります。HTML Police がコードを調べて、意味のないタグをすべて見つけ出す...

Webフロントエンドのパフォーマンス最適化

ウェブフロントエンド最適化のベストプラクティス: コンテンツWebフロントエンド最適化のベストプラク...