首页 > 其他分享 >react路由使用

react路由使用

时间:2024-04-08 23:12:12浏览次数:18  
标签:Goods 使用 element react import router path 路由

在介绍 React Router 的概念以前,需要先区分两个概念:

  react-router:为 React 应用提供了路由的核心功能;

  react-router-dom:基于 react-router,加入了在浏览器运行环境下的一些功能。

1. 安装(本文6.22.3版本)

npm i  react-router-dom  -S

2. 创建router/index.js

import Goods from "../page/Goods"
import Me from "../page/Me"
import App from "../App"

import {createBrowserRouter} from 'react-router-dom'

const router = createBrowserRouter([
    {
        path:'/',
        element:<App/>
    },
    {
        path:'/goods',
        element:<Goods/>
    },
    {
        path:'/me',
        element:<Me/>
    },

])

export default router

  3. 在入口index.js文件中注入

import {RouterProvider} from 'react-router-dom'
import router from './router'


root.render(
  <React.StrictMode>
     <Provider store={store}>
     <RouterProvider router={router}></RouterProvider>
    </Provider>
  </React.StrictMode>
);

  4.路由跳转

  4.1  通过Link标签

  import {Link, useNavigate} from 'react-router-dom'    <Link to="/goods">跳转Goods页面</Link>   4.2 编程式导航  useNavigate const navigate = useNavigate()   <button onClick={()=>navigate('/me')}>跳转Me页面</button>   5. 查询参数接收
 <Link to="/goods?id=1111">跳转Goods页面</Link>



 import {useSearchParams} from 'react-router-dom'

 export function Goods(){
    const [params] =useSearchParams()
    const id = params.get('id')  // 获取参数
    return(
        <div>Goods id: {id}</div>
    )
 }

 export default Goods

  6. 404配置

    {
        path:'*',
        element:<NotFound/>
    },

  7.嵌套路由, children配置嵌套关系<Outlet/>子路由显示位置

// 配置
  {
        path:'/',
        element:<Layout/>,
        children:[
            {
                index:true,// 默认
                element:<App/>
            },
            {
                path:'/goods',
                element:<Goods/>
            },
            {
                path:'/me',
                element:<Me/>
            },
        ]
    },

// 布局文件

import {Outlet} from 'react-router-dom'
import AsideMenu from './AsideMenu'
import './layout.css'

 export function Layout(){
    return(
        <div>
            <div className='header'>header</div>
            <div className='container'>
                 <div className='aside'>
                    <AsideMenu></AsideMenu>
                 </div>
                 <div className='main'>
                    {/* 子路由显示位置 */}
                    <Outlet></Outlet>
                </div>
            </div>
        </div>
    )
 }

 export default Layout

  

 

 

标签:Goods,使用,element,react,import,router,path,路由
From: https://www.cnblogs.com/jlyuan/p/18122885

相关文章

  • yarn包管理器使用
    二、yarn包的使用1、yarn特点速度超快。Yarn缓存了每个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件......
  • 6.10物联网RK3399项目开发实录-驱动开发之SPI接口的使用(wulianjishu666)
    嵌入式实战开发例程,珍贵资料,开发必备:链接:https://pan.baidu.com/s/1149x7q_Yg6Zb3HN6gBBAVA?pwd=hs8b======================================================================SPI使用SPI简介SPI是一种高速的,全双工,同步串行通信接口,用于连接微控制器、传感器、存储设......
  • 【简单讲解下C++max函数的使用】
    ......
  • 6.9物联网RK3399项目开发实录-驱动开发之PWM的使用(wulianjishu666)
    嵌入式实战开发例程,珍贵资料,开发必备:链接:https://pan.baidu.com/s/1149x7q_Yg6Zb3HN6gBBAVA?pwd=hs8b======================================================================PWM使用前言AIO-3399J开发板上有4路PWM输出,分别为PWM0~PWM3,4路PWM分别使用在EDP......
  • JDBC的使用与封装
    昨天学习了JDBC,连接数据库的操作,今天对JDBC做一个整合理解 JDBC的简述:JDBC是Java用来操作数据库的工具,实际就是不同的数据库实现了Java的接口,我们可以理解为:Java规范了接口,数据库实现了接口作用:通过Java代码操作数据库这里就是简述一下JDBC,如果大家如果想看的更详细,可以去......
  • 前端【Vuex】【使用介绍】
    1、组件下载vue与vuex的版本对应关系: Vue2匹配的Vuex3 Vue3匹配的Vuex4Vuex是一个专为Vue.js应用程序开发的状态管理模式+库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。官方网......
  • 如何使用Docker容器化改善你的开发流程
    使用Docker容器化技术可以大大改善开发流程,提高软件开发和部署的效率。Docker提供了一个轻量级的、可执行的包装环境,使得应用程序可以在几乎任何地方以相同的方式运行,这减少了从开发到生产环境的“它在我的机器上可以正常工作”的问题。参考文档:如何使用Docker容器化改善你的开......
  • react ref和context
    ref获取domcontext类似provider和injected,用于嵌套很深的爷孙组件传值子组件使用父组件创建的context对象,不能自己创建context创建在函数组件和class组件都是一样的exportletContext1=React.createContext('')<Context1.Providervalue='Contextvalue函数组件'>......
  • react 函数组件和hook
    函数组件1.函数组件没有生命周期2.函数组件没有this3.函数组件通过hook完成各种操作4.函数组件本身就是render函数5.props在函数第一个参数解释useState参考https://www.cnblogs.com/ssszjh/p/14581014.htmlprops参考https://www.cnblogs.com/ssszjh/p/18118746生命周期......
  • react 性能问题和优化
    某个组件更新,子组件也会一起更新react更新采用时间切片,vue则是依赖收集执行更新操作为16ms,如果操过16ms,先暂停更新,让浏览器先渲染时间切片时间是16ms,因为人眼刷新率约60帧,60hz为16ms1.避免state改为同样的值(class用PureComponent,函数组件默认已经处理了)2.处理子组......