亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

react中路由跳轉(zhuǎn)及傳參的實(shí)現(xiàn)

 更新時(shí)間:2023年05月05日 15:44:59   作者:這個(gè)很好吃  
本文主要介紹了react中路由跳轉(zhuǎn)及傳參的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.useNavigate

useNavigate 是 React Router v6 中新增的一個(gè) hook,可以用來進(jìn)行路由跳轉(zhuǎn)。

使用 useNavigate hook 首先需要安裝 react-router-dom@next,然后在函數(shù)式組件中引入:

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path');
  }
  return (
    <button onClick={handleClick}>跳轉(zhuǎn)到目標(biāo)路徑</button>
  );
}

useNavigate 返回一個(gè) navigate 函數(shù),可以用來進(jìn)行路由跳轉(zhuǎn)和監(jiān)聽路由變化。與 history.push 不同,navigate 不會(huì)在瀏覽器歷史記錄中添加重復(fù)的路由記錄。如果需要添加新的歷史記錄,可以使用 navigate({ pathname, state }) 的形式。

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', { state: { name: 'John', age: 25 } });
  }
  return (
    <button onClick={handleClick}>跳轉(zhuǎn)到目標(biāo)路徑</button>
  );
}

navigate 函數(shù)還可以接收一個(gè) options 對(duì)象,可以用來配置路由跳轉(zhuǎn)的方式。以下是一些常用的配置選項(xiàng):

  • replace:是否替換當(dāng)前頁(yè)面的歷史記錄;
  • state:傳遞的狀態(tài)數(shù)據(jù);
  • replace:是否替換當(dāng)前頁(yè)面的歷史記錄;
  • shoudlNavigate:是否允許進(jìn)行路由跳轉(zhuǎn);
  • replace:是否替換當(dāng)前頁(yè)面的歷史記錄。
import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', {
      state: { name: 'John', age: 25 },
      replace: true,
      shouldNavigate: true
    });
  }
  return (
    <button onClick={handleClick}>跳轉(zhuǎn)到目標(biāo)路徑</button>
  );
}

2.useLocation

在 React Router 中,可以通過 useLocation hook 來獲取傳遞的參數(shù)和路徑信息。以下是一個(gè)示例:

import { useLocation } from 'react-router-dom';
function TargetComponent() {
  const location = useLocation();
  const searchParams = new URLSearchParams(location.search);
  const name = searchParams.get('name');
  const age = searchParams.get('age');
  const data = location.state;
  return (
    <div>
      <p>當(dāng)前路徑:{location.pathname}</p>
      <p>查詢參數(shù):{`name=${name}, age=${age}`}</p>
      <p>狀態(tài)數(shù)據(jù):{JSON.stringify(data)}</p>
    </div>
  );
}

在目標(biāo)頁(yè)面中,可以通過 useLocation hook 獲取路由路徑信息和傳遞的參數(shù),然后使用 URLSearchParams 對(duì)象和 location.state 屬性來獲取具體的值。其中:

  • location.pathname 表示當(dāng)前頁(yè)面的路徑;
  • location.search 表示傳遞的查詢參數(shù),可以使用 URLSearchParams 對(duì)象來進(jìn)行解析;
  • location.state 表示傳遞的狀態(tài)數(shù)據(jù),可以在目標(biāo)頁(yè)面中獲取。

注意,在使用 URLSearchParams 對(duì)象時(shí),需要先調(diào)用 new URLSearchParams(location.search) 來創(chuàng)建一個(gè)實(shí)例,然后調(diào)用 get 方法來獲取具體的參數(shù)值。

使用 useNavigate 進(jìn)行路由跳轉(zhuǎn)并傳遞參數(shù)的示例如下:

import { useNavigate } from 'react-router-dom';
function MyComponent() {
  const navigate = useNavigate();
  function handleClick() {
    navigate('/target-path', { state: { name: 'John', age: 25 } });
  }
  return (
    <button onClick={handleClick}>跳轉(zhuǎn)到目標(biāo)路徑</button>
  );
}

3.示例

在跳轉(zhuǎn)到目標(biāo)路徑時(shí),可以使用 state 選項(xiàng)來傳遞數(shù)據(jù)。在目標(biāo)頁(yè)面中,可以使用 useLocation hook 獲取傳遞的數(shù)據(jù),示例如下:

import { useLocation } from 'react-router-dom';
function TargetComponent() {
  const location = useLocation();
  const data = location.state;
  return (
    <div>
      <p>姓名:{data.name}</p>
      <p>年齡:{data.age}</p>
    </div>
  );
}

在目標(biāo)頁(yè)面中,可以通過 location.state 屬性獲取傳遞的數(shù)據(jù)。注意,如果沒有傳遞數(shù)據(jù),則 location.state 的值為 undefined,需要進(jìn)行判斷處理。

到此這篇關(guān)于react中路由跳轉(zhuǎn)及傳參的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)react 路由跳轉(zhuǎn)及傳參內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解React 代碼共享最佳實(shí)踐方式

    詳解React 代碼共享最佳實(shí)踐方式

    這篇文章主要介紹了React 代碼共享最佳實(shí)踐方式,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • React組件中監(jiān)聽函數(shù)獲取不到最新的state問題

    React組件中監(jiān)聽函數(shù)獲取不到最新的state問題

    這篇文章主要介紹了React組件中監(jiān)聽函數(shù)獲取不到最新的state問題問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 一文搞懂redux在react中的初步用法

    一文搞懂redux在react中的初步用法

    Redux是JavaScript狀態(tài)容器,提供可預(yù)測(cè)化的狀態(tài)管理,今天通過本文給大家分享redux在react中使用及配置redux到react項(xiàng)目中的方法,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • react學(xué)習(xí)筆記之state以及setState的使用

    react學(xué)習(xí)筆記之state以及setState的使用

    這篇文章主要介紹了react學(xué)習(xí)筆記之state以及setState的使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 解決React初始化加載組件會(huì)渲染兩次的問題

    解決React初始化加載組件會(huì)渲染兩次的問題

    這篇文章主要介紹了解決React初始化加載組件會(huì)渲染兩次的問題,文中有出現(xiàn)這種現(xiàn)象的原因及解決方法,感興趣的同學(xué)跟著小編一起來看看吧
    2023-08-08
  • 詳解React?Native中如何使用自定義的引用路徑

    詳解React?Native中如何使用自定義的引用路徑

    這篇文章主要為大家介紹了React?Native中如何使用自定義的引用路徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React-Native之定時(shí)器Timer的實(shí)現(xiàn)代碼

    React-Native之定時(shí)器Timer的實(shí)現(xiàn)代碼

    本篇文章主要介紹了React-Native之定時(shí)器Timer的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • React技巧之中斷map循環(huán)的方法詳解

    React技巧之中斷map循環(huán)的方法詳解

    這篇文章主要和大家來分享一下React的技巧之如何中斷map循環(huán),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • React 三大屬性之state的使用詳解

    React 三大屬性之state的使用詳解

    這篇文章主要介紹了React 三大屬性之state的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用React,感興趣的朋友可以了解下
    2021-04-04
  • ReactNative Image組件使用詳解

    ReactNative Image組件使用詳解

    本篇文章主要介紹了ReactNative Image組件使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08

最新評(píng)論