首页 > 其他分享 >react 路由

react 路由

时间:2024-10-10 14:47:15浏览次数:6  
标签:const dom react 跳转 import 路由

安装 React Router

npm install react-router-dom

在入口文件 main.jsx 配置

首先在 react项目的入口文件index.js文件中,使用 BrowserRouter 将 包裹起来

import { StrictMode } from "react";
import { BrowserRouter } from "react-router-dom";
import { createRoot } from "react-dom/client";
import App from "./App.jsx";
import "./index.css";

createRoot(document.getElementById("root")).render(
  <StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </StrictMode>
);

BrowserRouter:包裹这个应用,一个React应用只需使用一次

在 React Router 中提供了两种路由模式:hash 和 history。

对应的的路由组件分别是:
  • HashRouter:hash 模式的路由
  • BrowserRouter:history 模式的路由

实际使用时,任选其中一个模式引入即可

其次,在App.js文件中,使用设置路由出口,使用指定导航链接

import React from "react";
import { Routes, Route } from "react-router-dom";

import Plant from "./pages/plant";
import PITagList from "./pages/PITagList";

export default function App() {
  return (
    <Routes>
      <Route path="/" element={<Plant />}></Route>
      <Route path="/PITagList" element={<PITagList />}></Route>
      {/* <Route path='/register' element={<Register/>}></Route>
     <Route path='/' element={<Home/>}></Route> */}
    </Routes>
  );
}
核心组件作用说明
  • Routes:提供一个路由出口,满足条件的路由组件会渲染到组件内部
  • Route: 用于指定导航链接,完成路由跳转
  • path:path属性指定匹配的路径地址
  • element element属性指定要渲染的组件

路由跳转

React Router 中,路由的跳转分为两种方式:

  • 标签(组件)跳转
  • JS(API)跳转

通过Link组件跳转

<Splitter.Panel collapsible>
  <Link to="/PITagList?plant=wh">
    <Desc text={"WH"} />
  </Link>
</Splitter.Panel>

编程式路由跳转

实现步骤

1、导入useNavigate钩子函数
import {useNavigate} from 'react-router-dom'
2、执行钩子函数得到跳转函数
let navigate=useNavigate();

执行跳转函数完成跳转

import React from 'react'
import {useNavigate} from 'react-router-dom'
​
export default function Register() {
  const navigate=useNavigate()
  const register=(e)=>{
    e.preventDefault()
    navigate('/login')
  }
  return (
    <div>
        <h1>用户注册</h1>
        <a href="#" onClick={(e)=>{register(e)}}>已注册,去登录</a>
    </div>
  )
}
注意

如果在跳转时不想加历史记录,可以添加额外参数replace为true

接收路由参数

import {useLocation } from 'react-router-dom'
const App = () => {
    const location = useLocation();
    const params = new URLSearchParams(location.search);
    const plant = params.get('plant');

  return (
    <Flex gap="middle" wrap>
      <Button type="primary" autoInsertSpace={false}>
        { plant }
      </Button>
      <Button type="primary" autoInsertSpace>
        确定
      </Button>
    </Flex>
  );
};
export default App;

标签:const,dom,react,跳转,import,路由
From: https://www.cnblogs.com/duixue/p/18456333

相关文章

  • 如何将React项目,部署到Web服务器的Tomcat 上
    将React应用部署到Tomcat服务器上通常需要将其构建为静态文件,然后将这些文件放入Tomcat的webapps目录。以下是具体步骤:步骤指南1.构建React应用首先,你需要在本地构建你的React应用。npmrunbuild这会在项目根目录下生成一个build文件夹,里面包含了优化......
  • 【华为】默认路由配置
    1.配置接入层:LSW1(LSW3同理):vlanbatch1020ing0/0/1portlink-typeacportdefaultvlan10ing0/0/2portlink-typeacportdefaultvlan20ing0/0/24portlink-typetrporttrallow-passvlan10202.配置汇聚层,设置网关,实现不同vlan之间的通信:LSW2(LSW4同......
  • Next.js 中动态路由的使用
    什么是动态路由?动态路由指的是URL中的某些部分不是固定的,而是可以动态变化的。比如,你有一个用户详情页面,可能每个用户的URL都是http://example.com/users/123,其中123是用户的ID。通过动态路由,我们可以捕获这个ID并展示对应的用户信息。一、创建动态路由文件在Nex......
  • OpenWrt 运行 tailscale 登录 headscale,配置路由转发
    headscale安装参考:https://www.cnblogs.com/nihaorz/p/18455027tailscale安装cd/var/lib/curl-OLhttps://pkgs.tailscale.com/stable/tailscale_1.74.1_arm64.tgztar-zxvftailscale_1.74.1_arm64.tgzmvtailscale_1.74.1_arm64tailscalermtailscale/systemd/tails......
  • React Native性能剖析:Flipper工具使用
    文章目录Flipper工具简介安装Flipper连接Flipper使用Flipper分析性能ReactNative插件Network插件Layout插件HeapGraph插件GraphQL插件实战案例分析案例1:性能瓶颈定位案例2:内存泄漏检测优化代码再次使用Flipper分析进阶技巧性能优化技巧内存优化技巧......
  • apisix Admin API配置TCP路由转发
    apisixAdminAPI配置TCP路由转发 一、开启和配置stream代理1、修改/usr/local/apisix/conf/config.yaml文件新增以下配置apisix:proxy_mode:http&streamstream_proxy:tcp:-9100-"192.168.1.110:9101"udp:-9200......
  • 三石峰工业4G路由器有这些优点
         路由器是基于4G技术研发的无线路由网关设备,除了具备传统路由器的VPN、防火墙、NAT、PPPoE、DHCP等功能之外,还能支持4G无线拨号,提供最高可达150Mbps的无线高速带宽。路由器支持四个以太网接口,可更好的满足自助终端机、广告机等多LAN需求的应用。路由......
  • [Vue] 异步路由组件和非路由组件的区别?
    异步路由组件都知道异步路由组件通过()=>import("./views/Home.vue")导入路由组件。但是它怎么就按需加载资源、代码分割了?不同的代码解析报告非异步路由组件异步路由组件代码分析报告生成代码pnpminstallwebpack-bundle-analyzerfile:[vue.config.js]const{......
  • 华为路由器配置IPV4和IPV6局域网示例
    设计架构图及IP地址如下:PC1和PC2通过DHCP和DHCPV6获取IPV4和IPV6地址,实现图内的所有设备IPV4和IPV6全部互通。1、IPV4配置:R2配置:<Huawei>system-viewEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameR2[R2]interfaceGigabitEthernet0/0/0......
  • Django路由和视图(筛选)
    温习温故知新1.路由分发方式一:includefromdjango.urlsimportpath,includeurlpatterns=[path('app/',include('app.urls'))]方式二:手工分发urlpatterns=[#path('user/login/',login,name='login'),#path('......