React 在非组件环境切换路由

news/2024/7/15 20:13:32 标签: react.js, javascript, 前端

我的react-router-dom版本是6.16.0。之前在react中是这样配置路由的

App.jsx

javascript">import ReactDOM from 'react-dom/client';
import { HashRouter, Route, Routes } from 'react-router-dom';

const root = ReactDOM.createRoot(document.getElementById("app"));
root.render(
    <HashRouter>
       <Routes>
     	   <Route
          	  path={XXX}
          	  element={<Component></Component>}
          	  key={XXX} /> 
       </Routes>
    </HashRouter>
);

然后使用axios做接口拦截,当接口的是响应码是10000的时候,跳转到登录页面,但是像上面这样使用路由,该怎么在组件外面(例如axios的逻辑中)做路由跳转呢。

目前看这种方法好像无法做跳转。

可以使用下面的方式做

router/index.jsx

javascript">import { createHashRouter } from "react-router-dom";

export const router = createHashRouter([
  {
    path: "/",
    element: <Component />,
  },
]);

App.jsx

javascript">import React, { useEffect } from "react";
import { RouterProvider, createHashRouter } from "react-router-dom";
import { router } from "@/router";

export default () => {
  return (
    <LoadingProvider>
      <AliveScope>
        <RouterProvider router={router} />
      </AliveScope>
    </LoadingProvider>
  );
};

然后如果组件外面想切换路由:

就类似这样:

javascript">import { router } from "@/router";

router.navigate('/login');

http://www.niftyadmin.cn/n/5122516.html

相关文章

Kubernetes(K8S)快速搭建typecho个人博客

Kubernetes&#xff08;K8S&#xff09;快速搭建typecho个人博客 1、准备工作 K8S集群环境&#xff0c;搭建教程参考腾讯云Lighthouse组建跨地域Kubernetes集群 K8S集群面板&#xff0c;搭建教程参考Kubernetes集群管理面板的安装及使用 - 青阳のblog-一个计算机爱好者的个人…

景联文科技提供4D-BEV标注工具:提升自动驾驶感知能力的精准数据支持

4D-BEV标注是一种用于自动驾驶领域的数据标注方法。在3D空间的基础上&#xff0c;加入了时间维度&#xff0c;形成了四个维度。这种方法通过精准地跟踪和记录动态对象&#xff08;如车辆、行人&#xff09;的运动轨迹、姿势变化以及速度等信息&#xff0c;全面理解和分析动态对…

python实现ModBusTCP协议的server

python实现ModBusTCP协议的server是一件简单的事情&#xff0c;只要通过pymodbus、pyModbusTCP等模块都可以实现&#xff0c;本文采用pymodbus。 相关文章见&#xff1a; python实现ModBusTCP协议的client-CSDN博客 一、了解pymodbus的Server 1、pymodbus.server的模块 pym…

基于Java的药品商城管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09; 代码参考数据库参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

python自动化测试(一):操作浏览器

通过Python的代码去操作浏览器的操作 目录 目录 1、导入自动化模块 2、定义打开的浏览器驱动、声明一个url变量保存打开的地址 3、使用函数&#xff1a;driver.get(url)打开浏览器的指定页面 4、最大化浏览器窗口&#xff1a;driver.maximize_window() 5、添加全局的等待…

【C++基础入门】43.C++中多态的概念和意义

一、函数重写回顾 父类中被重写的函数依然会继承给子类子类中重写的函数将覆盖父类中的函数通过作用域分辨符&#xff08;::&#xff09;可以访问到父类中的函数 二、多态的概念和意义 面向对象中期望的行为 根据实际的对象类型判断如何调用重写函数父类指针&#xff08;引用…

Kafka入门04——原理分析

目录 01理解Topic和Partition Topic(主题) Partition(分区) 02理解消息分发 消息发送到分区 消费者订阅和消费指定分区 总结 03再均衡(rebalance) 再均衡的触发 分区分配策略 RangeAssignor(范围分区) RoundRobinAssignor(轮询分区) StickyAssignor(粘性分区) Re…

linux实现基础网络库(socket,epoll,pthread,cmake,pipe, sem,codition,)

面试时经常会问到网络库&#xff0c;好久没看过这块知识了&#xff0c;实现一下&#xff0c;用到了一下一些知识点 socket搭建网络库必须用到的epoll 多路复用技术用的是epollpthread 服务器用到了多线程&#xff0c;主线程启动服务器&#xff0c;子线程处理来自各个连接的数据…