反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。

リンクのパス属性を設定することで、ルートが渡されます。リンクタグをクリックすると、渡されたURL全体が上記のURLアドレスに表示されます。

<Link to='/home?name=dx'>ホーム</Link>

渡されたパラメータを実際に取得したい場合は、対応するサブコンポーネントで行う必要があります。
this.props.location.searchは文字列を取得し、手動で解析します

パラメータはユーザーに見えるので渡したり取得したりするのが面倒なのでお勧めできません

2番目のパラメータ渡し方法: 暗黙的なルーティングパラメータ渡し

<リンク先={{
     パス名: 'about',
     州: {
      名前: 'dx'
     }
    }}>について</Link>

いわゆる暗黙的なルートパラメータの受け渡しとは、パラメータ情報が URL に公開されないことを意味します。リンク タグをクリックしたときに、渡されたパラメータを取得したい場合は、対応するルート コンポーネントの this.props.location.state を通じて取得できます。

渡されたパラメータを取得するには、推奨され、より安全で、より便利です

3番目のパラメータ渡し方法は、コンポーネント間でパラメータを渡すことです。

いつ使うのですか?
ルーティングコンポーネントが親コンポーネントからパラメータを受け取る必要がある場合

ルート タグがコンポーネント属性を通じてコン​​ポーネントをアクティブ化する方法を変更します。通常、ルート タグはルーティングで使用されます。

//簡潔で明確ですが、親コンポーネントからパラメータを受け取ることができません <Route path='/test' component={Test}></Route>

変身後

<Link to='/test'>テスト</Link>
<ルートパス='/test' レンダリング={(routeProps) => {
 //routePropsはルーティングコンポーネントによって渡されるパラメータ戻り値です(
     //元のルーティング コンポーネント パラメータの場合、親コンポーネントから子コンポーネントに渡されるパラメータのバインディングを展開します <Test {...routeProps} name='dx' age={18} />
     )
 }}></ルート> 



リンクタグをクリックすると、対応するテストサブコンポーネント内の this.props は、親コンポーネントから渡されたパラメータとルーティングコンポーネント自体のパラメータを取得します。パラメータを渡すのは少し面倒ですが、受け取るパラメータは非常に便利です。また、ルーティングコンポーネント自体のパラメータも引き続き受け取ることができますが、安全で、ユーザーには見えません。

4番目のパラメータ渡しメソッドwithRouter高階コンポーネントはルーティングパラメータを子コンポーネントにバインドします。

withRouter はいつ使用すればよいですか?

サブコンポーネント内のルート パラメータを取得する場合は、ルート パラメータにバインドされるルート内のルート タグのサブコンポーネントを使用する必要があります。

ルートタグにバインドされていないサブコンポーネントのルーティングパラメータを取得する問題を解決するには、withRouterを使用する必要があります。

通常、「ホームページに戻る」や「前のレベルに戻る」などのボタンで使用されます。

'react' から React をインポートします。
'./backhome' から BackHome をインポートします。
デフォルトのクラスTestをエクスポートし、React.Componentを拡張します。
 与える () {
  コンソールログ(this.props)
  戻る (
   <div>
    これはテストの内容です //ホームページに戻るボタンはルートタグを通じてレンダリングされないので、サブコンポーネントの this.props にはルートパラメータがありません <BackHome>ホームページに戻る</BackHome> 
   </div>
  )
 }
}

'react' から React をインポートします。
//ルートをインポートする
'react-router-dom' から {withRouter} をインポートします。
クラス BackHome は React.Component を拡張します {
 ゴーホーム = () => {
  //withRouter を使用する場合、コンポーネントは this.props にルーティングパラメータとメソッドを持っている必要があります //そうでない場合はエラーが報告されます this.props.history.push({
   パス名: '/home',
   州: {
    name: 'dx' //同様に、state を通じてホームルートに対応するコンポーネントにパラメータを渡すこともできます}
  })
 }
 与える () {
  戻る (
   <button onClick={this.goHome}>this.props.children</button>
  )
 }
}
//エクスポート時に、withRouter タグを使用して backHome コンポーネントをパラメータとして渡します export default withRouter(BackHome)

使用する必要がある場合に非常に重要なので、やはりお勧めです。

これで、React ルーティングでパラメータを渡すいくつかの方法についての記事は終了です。React ルーティングでパラメータを渡す方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Reactルーティングパラメータ転送方法の概要記録の詳細説明
  • React コンポーネント通信ルーティングパラメータ転送 (react-router-dom)

<<:  MySQL の基本ステートメントを最適化するための 10 の原則の概要

>>:  Linux カーネル デバイス ドライバー仮想ファイル システムに関する注意事項

推薦する

Hタグの定義と注意事項について簡単に説明します

結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...

uniappを使用してWeChatミニプログラムでEChartsを使用する方法

今日は、uniapp を使用して Echarts を統合し、マップ チャートを表示します。 mpvu...

JS配列の一般的な方法とテクニックを学び、マスターになりましょう

目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

Nginx は https ウェブサイト構成コード例を実装します

https ベースポート 443。これはキーと呼ばれるものに使用されます。これらのことを理解せずにで...

HTMLでカスタムタグを使用する方法

カスタム タグは XML ファイルと HTML ファイルで自由に使用できますが、いくつか注意すべき点...

CentOS6.7 mysql5.6.33 でデータファイルの場所を変更する方法

問題: MySQL がデータ ファイルを保存するパーティションの容量が小さく、現在いっぱいになってい...

CSS レスポンシブ レイアウト システムの例コード

レスポンシブ レイアウト システムは、今日の一般的な CSS フレームワークではすでに非常に一般的で...

tomcat デプロイメント プロジェクトの実装と IDEA との統合

目次Tomcat でプロジェクトを展開する 3 つの方法プロジェクトをwebappsディレクトリに直...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

Dockerイメージとコンテナの一般的な操作の詳細な説明

画像アクセラレータ中国の Docker Hub からイメージをプルすることが難しい場合があります。こ...

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

フォームのデフォルトの送信方法を変更する方法

htmlのデフォルトの送信方法は、postではなくgetです。postに変更したい場合は、 meth...

Nginx で複数のドメイン名がドメインをまたいでアクセスできるようにマップを使用する方法

一般的なNginx構成ではクロスドメインが可能 サーバー{ 11111 を聞いてください。 serv...