react路由传参的三种方式(易理解)

简介: react路由传参的三种方式(易理解)

1 路由固定 ----navlink 传值 params传参 useParams

//路由
import { Outlet,NavLink } from 'react-router-dom'
{
  path:'detail/:id/:title/:content',
  element:<Detail />
 }
//组件内点击
<li>
  <NavLink to={`detail/${item.id}/${item.title}/${item.content}`} >{item.title}</NavLink>
</li>
//组件内接受参数
import { useParams } from 'react-router-dom'
export default function Detail() {
    let {id,title,content} = useParams()
  return (
    <div>
        <ul>
            <li>新闻id:{id}</li>
            <li>新闻标题:{title}</li>
            <li>新闻内容:{content}</li>
        </ul>
    </div>
  )
}

2路由传值 query传参 useSearchParams

//路由
import { Outlet,NavLink } from 'react-router-dom'
{
  path:'detail',
  element:<Detail />
 }
 //组件内点击
<li>
  <NavLink to={`detail?id=${item.id}&title=${item.title}&content=${item.content}`}>{item.title}</NavLink>
</li>
//组件内接受参数     第一个参数传递过来的数据对象,用get方法来取值  第二个参数是设置新的数据
import { useSearchParams } from 'react-router-dom'
export default function Detail() {
    let  [searchParams,setobj] = useSearchParams()
    let id = searchParams.get('id')
    let title = searchParams.get('title')
    let content = searchParams.get('content')
  return (
    <div>
        <ul>
            <li>新闻id:{id}</li>
            <li>新闻标题:{title}</li>
            <li>新闻内容:{content}</li>
             <li onClick={()=>{
                setobj( { id: 4, title: "你是谁啊4", content: "有什么事情啊4" })
            }}>点击切换</li>
        </ul>
    </div>
  )
}

3.state传参 useLocation

//路由
import { Outlet,NavLink } from 'react-router-dom'
{
  path:'detail',
  element:<Detail />
 }
//组件内点击
<li>
  <NavLink to='detail' state={item}>{item.title}</NavLink>
</li>
// state传参
import React from 'react'
import { useLocation } from 'react-router-dom'
export default function Detail() {
    let  {state:{id,title,content}} = useLocation()
  return (
    <div>
        <ul>
            <li>新闻id:{id}</li>
            <li>新闻标题:{title}</li>
            <li>新闻内容:{content}</li>
        </ul>
    </div>
  )
}
相关文章
|
9天前
|
移动开发 资源调度 前端开发
介绍React路由模式
【8月更文挑战第10天】介绍React路由模式
35 12
|
3月前
|
前端开发 JavaScript
React和Vue实现路由懒加载
React和Vue实现路由懒加载
60 2
|
3月前
|
存储 前端开发 JavaScript
react怎么实现跨页面传参
react怎么实现跨页面传参
123 2
|
8天前
|
移动开发 前端开发 API
React路由和HTML5 History API有什么区别
【8月更文挑战第11天】React路由和HTML5 History API有什么区别
17 1
|
1天前
|
前端开发 JavaScript 算法
React Server Component 使用问题之想在路由切换时保持客户端状态,如何实现
React Server Component 使用问题之想在路由切换时保持客户端状态,如何实现
|
1天前
|
前端开发 JavaScript PHP
React Server Component 使用问题之路由的能力,如何实现
React Server Component 使用问题之路由的能力,如何实现
|
8天前
|
移动开发 前端开发 JavaScript
react路由实现原理
【8月更文挑战第11天】react路由实现原理
17 1
|
2月前
|
前端开发 JavaScript API
React小记(四)_路由的基本使用
React小记(四)_路由的基本使用
19 1
|
1月前
|
网络架构
react18【系列实用教程】react-router-dom —— 路由管理 (2024最新版)
react18【系列实用教程】react-router-dom —— 路由管理 (2024最新版)
39 0
|
1月前
|
前端开发 JavaScript
react18【系列实用教程】useState —— 声明响应式变量(2024最新版)含useState 的异步更新机制,更新的合并,函数传参获取更新值,不同版本异步更新差异,更新对象和数组
react18【系列实用教程】useState —— 声明响应式变量(2024最新版)含useState 的异步更新机制,更新的合并,函数传参获取更新值,不同版本异步更新差异,更新对象和数组
68 0

热门文章

最新文章