千家信息网

React路由模式有哪些

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天小编给大家分享一下React路由模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
千家信息网最后更新 2026年11月03日React路由模式有哪些

今天小编给大家分享一下React路由模式有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

React路由有两种模式。分别是:1、hash模式,该模式会在路径前加入"#"号成为一个哈希值;2、history模式,该模式允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。

本教程操作环境:Windows10系统、react17.0.1版、Dell G3电脑。

React路由

一、是什么

在单页应用中,一个web项目只有一个html页面,一旦页面加载完成之后,就不用因为用户的操作而进行页面的重新加载或者跳转,其特性如下:

改变 url 且不让浏览器像服务器发送请求

在不刷新页面的前提下动态改变浏览器地址栏中的URL地址

其中主要分成了两种模式:

  • hash 模式:在url后面加上#,如http://127.0.0.1:5500/home/#/page1

  • history 模式:允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录

二、使用

React Router对应的hash模式和history模式对应的组件为:

HashRouter

BrowserRouter

这两个组件的使用都十分的简单,作为最顶层组件包裹其他组件,如下所示

// 1.import { BrowserRouter as Router } from "react-router-dom";// 2.import { HashRouter as Router } from "react-router-dom"; import React from 'react';import {  BrowserRouter as Router,  // HashRouter as Router    Switch,  Route,} from "react-router-dom";import Home from './pages/Home';import Login from './pages/Login';import Backend from './pages/Backend';import Admin from './pages/Admin';  function App() {  return (                                          );} export default App;

三、实现原理

路由描述了 URL 与 UI之间的映射关系,这种映射是单向的,即 URL 变化引起 UI 更新(无需刷新页面)

下面以hash模式为例子,改变hash值并不会导致浏览器向服务器发送请求,浏览器不发出请求,也就不会刷新页面

hash 值改变,触发全局 window 对象上的 hashchange 事件。所以 hash 模式路由就是利用 hashchange 事件监听 URL 的变化,从而进行 DOM 操作来模拟页面跳转

react-router也是基于这个特性实现路由的跳转

下面以HashRouter组件分析进行展开:

HashRouter

HashRouter包裹了整应用,

通过window.addEventListener('hashChange',callback)监听hash值的变化,并传递给其嵌套的组件

然后通过context将location数据往后代组件传递,如下:

import React, { Component } from 'react';import { Provider } from './context'// 该组件下Api提供给子组件使用class HashRouter extends Component {  constructor() {    super()    this.state = {      location: {        pathname: _window.location.hash.slice(1) || '/'      }    }  }  // url路径变化 改变location  componentDidMount() {    _window.location.hash = _window.location.hash || '/'    window.addEventListener('hashchange', () => {      this.setState({        location: {          ...this.state.location,          pathname: _window.location.hash.slice(1) || '/'        }      }, () => console.log(this.state.location))    })  }  render() {    let value = {      location: this.state.location    }    return (              {          this.props.children        }          );  }} export default HashRouter;

Router

Router组件主要做的是通过BrowserRouter传过来的当前值,通过props传进来的path与context传进来的pathname进行匹配,然后决定是否执行渲染组件

import React, { Component } from 'react';import { Consumer } from './context'const { pathToRegexp } = require("path-to-regexp");class Route extends Component {  render() {    return (              {          state => {            console.log(state)            let {path, component: Component} = this.props            let pathname = state.location.pathname            let reg = pathToRegexp(path, [], {end: false})            // 判断当前path是否包含pathname            if(pathname.match(reg)) {              return             }            return null          }        }          );  }}export default Route;

以上就是"React路由模式有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

模式 组件 路由 页面 浏览器 浏览 知识 篇文章 变化 事件 内容 包裹 历史 地址 就是 服务器 标签 框架 特性 路径 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 山东特亿宝互联网科技有限公司 互联网科技工作委员会主任 蓝思科技飞鸽互联网 互联网科技开发公司 易互联网科技有限公司 杭州互联网科技公司 美国互联网前沿科技 互联网 科技馆 隆华科技工业互联网 福州新华互联网科技学校 知乎 以后互联网后是啥科技 青岛科技大学互联网大赛研究生 广州有谷有贝互联网科技有限公司 互联网科技包装股 互联网金融运营模式中的金融科技 悟空问答互联网科技 互联网科技创新创业项目 宁波允成互联网科技有限公司 武汉亿视互联网科技有限公司 瑰夏咖啡 互联网科技有限公司图片 为想互联网科技 华中科技大学互联网 济南和联互联网科技有限公司 迪庆互联网科技招生 工业互联网等科技实现智能化赋能 每天都有哪些好的互联网科技 科技互联网行业投资研究 互联网科技快速发展优美句子
0