インストールインストールするには、次のコマンドを入力します。 // ネプ npm で react-router-dom をインストールします //糸 糸を追加 react-router-dom react-router 関連タグ
輸入 { ブラウザルーター、 ハッシュルーター、 ルート、 リダイレクト、 スイッチ、 リンク、 ナビリンク、 ルータ付き、 } 'react-router-dom' から シンプルなルートジャンプシンプルな第1レベルのルーティングジャンプを実装する 輸入 { ルーターとしての BrowserRouter、 ルート、 リンク } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <Link to="/home" className="link">ホームページへジャンプ</Link> <Link to="/about" className="link">About ページへ移動</Link> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 効果は以下のとおりです。 要点の要約:
ネストされたルートジャンプ
たとえば、 輸入 { ルーターとしての BrowserRouter、 ルート、 リンク、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <Link to="/home">ホームページへ移動</Link> <Link to="/about">About ページへ移動</Link> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 次に、 'react' から React をインポートします 輸入 { ルート、 リンク、 } 'react-router-dom' から './one' から One をインポートします './two' から Two をインポートします 関数ホーム() { 戻る ( <> 私はホームページです <Link to="/home/one">Home/one ページへ移動</Link> <Link to="/home/two">ホーム/2 ページへ移動</Link> <ルート パス="/home/one" コンポーネント={One}/> <ルート パス="/home/two" コンポーネント={Two}/> </> ) } エクスポートデフォルトホーム 特記事項: 動的リンク
輸入 { BrowserRouterをルーターとして使用する ルート、 ナビリンク } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <NavLink to="/home" className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 /* アクティブクラスのスタイルを設定します */ 。アクティブ { フォントの太さ: 黒; 色: 赤; } 効果は以下のとおりです。 ルートマッチングの最適化リダイレクト リンクをクリックすると、図に示すように、 通常の状況では、1 つのルールに一致させてレンダリングするだけで済みます。つまり、一致が成功した後は、それ以降の一致を試行する必要はありません。この場合、次に示すように、 輸入 { BrowserRouterをルーターとして使用する ルート、 ナビリンク、 スイッチ、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <NavLink to="/home" className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <スイッチ> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/home" コンポーネント={Home}/> *ここでは 1 万個のルート コンポーネントは省略されています*/ <ルート パス="/home" コンポーネント={Home}/> </スイッチ> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 効果は以下のとおりです。 要点の要約: リダイレクトページがジャンプするときに、ジャンプ リンクがどの 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 リダイレクト、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <NavLink to="/home" className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <NavLink to="/shop" className="link">ショップページへジャンプ</NavLink> {/* クリックすると /shop へジャンプしますが、パスが設定されていません*/ <スイッチ> <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> <Redirect to="/home" />{/* 上記のすべてのルートコンポーネントが一致しない場合は、/home にリダイレクトします */ </スイッチ> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 効果は以下のとおりです。 ルーティングパラメータルートによって渡されるすべてのパラメータは、ジャンプ ルート コンポーネントの ルーティングを通じてパラメータを渡す方法は 3 つあります。 1 つずつ見ていきましょう。 最初 1 つ目は、 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> パス /home には、Zhang San と 18* の 2 つのパラメータがあります。 <NavLink to="/home/张三/18" className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <スイッチ> */home の一致するパスの同じ場所で名前と年齢のパラメータを受け取ります*/ <ルート パス="/home/:name/:age" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </スイッチ> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 ルーティングコンポーネントの ご覧のとおり、最初のメソッドのパラメータは 2番目 2 番目の方法は、 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> ジャンプパスの後に、? で始まる 2 つのパラメータを渡します。つまり、name=张三、age=18 */ <NavLink to="/home?name=张三&age=18" className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <スイッチ> ここで受信操作を行う必要はありません*/ <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </スイッチ> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 ルーティングコンポーネントの ご覧のとおり、2 番目のメソッドのパラメーターは 3番目 3 番目の方法は、 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> {/* to 属性をオブジェクトの形式で記述し、パス属性の名前は pathname、パラメータ属性の名前は state です */ <NavLink to={{pathname: "/home", state: {name: '张三', age: 18}}} className="link">ホームページへジャンプ</NavLink> <NavLink to="/about" className="link">About ページへ移動</NavLink> <スイッチ> ** ここで属性を特に受け取る必要はありません*/ <ルート パス="/home" コンポーネント={Home}/> <ルート パス="/about" コンポーネント={About}/> </スイッチ> </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 ルーティングコンポーネントの ご覧のとおり、3番目のメソッドのパラメータは 機能ルーティング 上記は主に しかし、関数を呼び出していつでもどこでもルートをジャンプするなど、より柔軟なルートジャンプ方法が必要になる場合があります。これを機能ルーティングと呼びます。 機能ルーティングで使用されるメソッドは メソッドは 押す
たとえば、ルーティング コンポーネント 'react' から React をインポートします 関数ホーム(props){ pushLink = () => { とします。 props.history.push('/about') } 戻る ( <div クラス名="a"> ホーム ページにいます <button onClick={pushLink}> About ページへ移動 </button> </div> ) } エクスポートデフォルトホーム ジャンプ効果は以下のとおりです。 ご覧のとおり、 交換する
コードを変更する 'react' から React をインポートします 関数ホーム(props){ replaceLink = () => { とします。 props.history.replace('/about') } 戻る ( <div クラス名="a"> ホーム ページにいます <button onClick={replaceLink}> About ページへ移動 </button> </div> ) } エクスポートデフォルトホーム ジャンプ効果は以下のとおりです。 ご覧のとおり、最初のパスは「/」で、次に「/home」にジャンプし、ボタンをクリックして、 前進
ここでこれ以上のデモンストレーションは行いません。 戻る
行く 名前が示すように、 このメソッドは、次のように 1 つのパラメータ (パラメータ タイプは
共通コンポーネントはルーティングを使用するここでは、通常のコンポーネントとルーティングコンポーネントという2つの概念があります。 たとえば、次のコードでは、 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 } 'react-router-dom' から './home' から Home をインポートします。 デフォルト関数App()をエクスポートする{ 戻る ( <div className="アプリ"> <ルーター> <NavLink to='/home' className="link">ホームページへジャンプ</NavLink> <スイッチ> <ルート パス="/home" コンポーネント={Home}/> </スイッチ> </ルーター> </div> ); } そして、ルーティングコンポーネントと通常のコンポーネントの最大の違いは、コンポーネントの この時点で、 使い方は次のとおりです: 輸入 { ルーターとしての BrowserRouter、 ルート、 ナビリンク、 スイッチ、 withRouter, // 1. witRouterを導入する } 'react-router-dom' から './about' から About をインポートします 関数App(props) { console.log(props); // 3. 通常のコンポーネント App の props を出力してみると、props にすでにコンテンツが含まれていることがわかります。つまり、通常のコンポーネントもルーティング コンポーネントと同じ機能を持つことができます。 return ( <div className="アプリ"> <ルーター> <NavLink to="/about" className="link">About ページへ移動</NavLink> <スイッチ> <ルート パス="/about" コンポーネント={About}/> </スイッチ> </ルーター> </div> ); } export default withRouter(App); // 2. withRouterメソッドを使用して通常のコンポーネントをラップする 補充する交換する 機能ルーティングには、 輸入 { BrowserRouterをルーターとして使用する ルート、 リンク } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <Link to="/home" className="link">ホームページへジャンプ</Link> <Link to="/about" className="link">About ページへ移動</Link> <Route path="/home" component={Home} replace={true}/> {/* replace は true、ジャンプ タイプは replace です */ <Route path="/about" component={About} replace={false}/> {/* replace は false、ジャンプ タイプは push */ </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 Route コンポーネントには、リダイレクト タイプを設定できる replace 属性があります。値が true の場合、リダイレクト タイプは replace になり、値が false の場合、リダイレクト タイプは push になります。 発掘 デフォルトのルート マッチングはあいまいマッチングです。例: 輸入 { BrowserRouterをルーターとして使用する ルート、 リンク、 } 'react-router-dom' から './home' から Home をインポートします。 './about' から About をインポートします 関数App() { 戻る ( <div className="アプリ"> <ルーター> <Link to="/home/abc">ホームページにジャンプ</Link>{/* /home/abc にジャンプしますが、home の下に abc ルーティング コンポーネントはありません*/ <Link to="/about/abc">About ページへジャンプ</Link>{/* /about/abc へジャンプしますが、ホームの下に abc ルーティング コンポーネントはありません*/ <Route path="/home" component={Home} />{/* ルートのマッチングルールは /home で、正確な属性は設定されておらず、現在の一致はあいまいです*/ <Route path="/about" component={About} exact/> {/* ルートのマッチングルールは /about で、exact 属性が設定されており、現在の一致は exact です*/ </ルーター> </div> ); } デフォルトのアプリをエクスポートします。 効果は以下のとおりです。 図からわかるように、 要約:
上記は、React ルーティングの簡単なクイックスタートの詳細な内容です。React ルーティングのクイックスタートの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Linux での SSH パスワードフリーログイン設定の詳細な説明
>>: Windows での MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル
目次1. 内閣府1. コンセプト2. MHAの構成3. MHAの特徴2. MySQL+MHAをビルド...
1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...
1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...
1. インデックスの役割一般的なアプリケーション システムでは、読み取りと書き込みの比率は約 10:...
1. テーブル構造テーブル人id名前1あなた2あなた(スペース) 3あなた(スペース2つ) 2. ク...
目次I. 概要2. pt-archiverの主なパラメータ3. mysql_archiverのインス...
目次1. 構造指示モジュールforRoot()を書く3. スタイルの定義ドラッグ時の順序を調整するに...
一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...
コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...
DIV+css構造 CSSレイアウトを学んでいますか?まだ純粋な CSS レイアウトを完全に習得でき...
たくさん集めましたが、すべて失敗に終わりました。最終的に、この方法は優れており、使用に影響を与えない...
序文:ルートでは、主要部分は同じでも、基礎となる構造が異なることがあります。たとえば、ホームページに...
問題現象: [root@localhost ~]# docker イメージをプル xxx.com.c...
需要背景最近、Vue を使用してフロントエンド エンジニアリング システムと組み合わせ、以前のデモを...
目次定期的に剪定するミラーエビクションコンテナのクリーンアップネットワークソート体積の蒸発完全にクリ...