本文介绍: 这两个方法是在之前的项目中还没有接触过这方法,新项目使用TS进行编写,其中使用到useLocation及useNavigate这两种钩子,个人认为其中useNavigatea标签href的作用类似,具有路由跳转功能,但useNavigate更有助于转到特定的URL,前进或后退页面,但同时能够进行后退与前进。useLocation可以获取路由信息,当其他页面需要当前页面跳转来后的数据可以使用

个人学习记录,不准确的地方欢迎指正

一、引入
import {useNavigate, useLocation} from 'react-router-dom'
二、是什么

两个方法是在之前的项目中还没有接触过这方法,新项目使用TS进行编写,其中使用到useLocationuseNavigate这两种钩子,个人认为其中useNavigate与a标签href的作用类似,具有路由跳转功能,但useNavigate更有助于转到特定的URL,前进或后退页面,但同时能够进行后退与前进。useLocation可以获取路由信息,当其他页面需要当前页面跳转来后的数据可以使用

三、useNavigate

使用方法举例说明

const navigate = useNavigate();

const handleClick () => {
    navigate('/home');
};

//作为组件
const App () => {
    return <Navigate to='/home' state={state} />;
};

//前进、后退
const handleClick () => {
    navigate(-1);  //后退
    navigate(1);  //前进
};
四、useLocation
  1. Location 对象包含有关当前 URL 的信息

Location 对象是 window 对象的一部分,可通过 window.location.xxx 格式的相关属性对其进行访问

属性

描述

hash

设置返回从井号 (#) 开始的 URL(锚)。

host

设置或返回主机名和当前 URL 的端口号

hostname

设置或返回当前 URL 的主机名。

href

返回完整的URL

pathname

设置或返回当前 URL 的路径部分。

port

返回当前 URL 的端口号

protocol

可读可写的字符串,可设置或返回当前 URL 的协议

search

可设置或返回当前 URL 的查询部分(问号 ? 之后的部分)

  1. 跳转至另一页面使用刚才页面的值时可以使用useNavigate() 进行传值,并使用useLocation() 接受值

  1. 操作

在当前页面使用useNavigate的时候,在第二个参数需要发送数据带上:

import { useNavigate } from "react-router-dom";

let navigate = useNavigate();
navigate(navigateUrl, { state: {name: 'ada'}});

在被跳转的页面用useLocation获取参数的值

import { useLocation } from 'react-router-dom';

const location = useLocation();
//state值:location.state.name;

另外还可以通过queryString 获取location属性的值

import queryString from 'query-string';
import {useLocation} from 'react-router-dom'

const location = useLocation();
const id = queryString.parse(location.search);

原文地址:https://blog.csdn.net/Zqqq7/article/details/129319784

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_14043.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注