react跳转和传参两种方式

需要安装ReactRouter包:npm i react-router-dom

两种跳转方式分别是Link和useNavigate,下面跳转传参会有所展示

1.useSearchParams传参

传参代码

javascript 复制代码
//传参方代码
import { Link, useNavigate } from "react-router-dom"
const Login = () =>{
    const navigate = useNavigate()
    return <div>
            <button onClick={()=>navigate('/shop?id=100&name=zs')}>登录(传参)</button>
            <Link to="/shop?id=100&name=zs">跳转到购物(传参)</Link>
    </div>
}
export default Login

接收代码

javascript 复制代码
//接收方代码
import { useSearchParams } from "react-router-dom"
function App(){
  // 接收传参
  const [params] = useSearchParams()
  const id = params.get('id')
  const name = params.get('name')
  console.log(id, '接收传参', name)
}

2.useParams传参

javascript 复制代码
//路由这里需要进行配置(主要看my的配置)
import Login from '../view/login/index'
import My from '../view/my/index'
import { createBrowserRouter } from 'react-router-dom'

const router = createBrowserRouter([
    {
        path:'/login',
        element:<Login/>
    },
    {
        path:'/my/:id/:name',
        element:<My/>
    }
])

export default router

传参代码

javascript 复制代码
//传参方
import { Link, useNavigate } from "react-router-dom"


const Login = () =>{
    const navigate = useNavigate()
    return <div>
        <Link to="/my/100/ll">跳转到我的(传参)</Link>
    </div>
}
export default Login

接收代码

javascript 复制代码
//接收方
import { useParams } from "react-router-dom"
const My = () =>{
    const params = useParams()
    const id = params.id
    const name = params.name
    return <div>
        <div>这里是我的页面,id是{id},名字是{name}</div>
    </div>
}
export default My
相关推荐
头顶秃成一缕光7 分钟前
若依——基于AI+若依框架的实战项目(实战篇(下))
java·前端·vue.js·elementui·aigc
冴羽yayujs11 分钟前
SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照
前端·javascript·vue.js·前端框架·react
木木黄木木23 分钟前
HTML5图片裁剪工具实现详解
前端·html·html5
念九_ysl25 分钟前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
海石25 分钟前
vue2升级vue3踩坑——【依赖注入】可能成功了,但【依赖注入】成功了不太可能
前端·vue.js·响应式设计
uhakadotcom37 分钟前
Vite 与传统 Bundler(如 Webpack)在 Node.js 应用的性能对比
前端·javascript·面试
uhakadotcom1 小时前
Socket.IO 简明教程:实时通信的基础知识
前端·javascript·面试
机器视觉知识推荐、就业指导1 小时前
QML 批量创建模块 【Repeater】 组件详解
前端·c++·qml
lmryBC491 小时前
golang接口-interface
java·前端·golang