码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • react路由的匹配模式(模糊匹配、精确匹配)


    目录

    一 模糊匹配

    二 精确匹配


    一 模糊匹配

    react路由默认情况下使用的是 模糊匹配
    模糊匹配规则: 只要pathname(link的to属性/地址栏url的pathname)是以的path属性的值开头,就能匹配成功
     

     代码

    1. import React from "react";
    2. import {createRoot} from 'react-dom/client';
    3. //导入路由的核心组件
    4. import {HashRouter, BrowserRouter as Router, Route, Link} from "react-router-dom"
    5. const Home = () => <p>我是home页面p>
    6. const Login = () => <p>我是login页面p>
    7. class App extends React.Component {
    8. render() {
    9. return (
    10. <Router>
    11. <h2>模糊匹配h2>
    12. <Link to="/first/a/b/c">去登录页面Link>
    13. <Route path="/" component={Home}>Route>
    14. <Route path="/first" component={Login}>Route>
    15. Router>
    16. )
    17. }
    18. }
    19. createRoot(document.getElementById('root')).render(<App/>);

    效果

    默认路由显示home组件

     点击链接 "去登录页面" → 显示Home和Login 组件

    来看一下是怎么匹配的

    首先 pathname 是 /first/a/b/c

    Home组件对应的的path属性是 /

    Login 组件对应的的path属性是 /first

    模糊匹配规则: 只要pathname(link的to属性/地址栏url的pathname)是以的path属性的值开头,就能匹配成功

    二 精确匹配

    精确匹配规则: 当pathname(link的to属性/地址栏url的pathname)和的path属性的值 完全相同时,才能匹配成功

    精确匹配使用方式: 给Route组件添加exact属性

    修改上面的代码

     pathname /first/a/b/c 匹配不到 / 和 /first

     修改使pathname和path完全一样

    能匹配到了

     

  • 相关阅读:
    Android仿QQ消息拖拽效果(一)(二阶贝塞尔曲线使用)
    Node.js基础
    JS中的DOM对象
    [算法]滑动窗口
    数组Array.prototype原型方法学习-30分钟学完数组全部操作 原创
    [附源码]计算机毕业设计基于Springboot数字乡村基础治理系统
    什么是Netty编解码,Netty编解码器有哪些?Protostuff怎么使用?
    Command SwiftCompile failed with a nonzero exit code
    ping使用
    CPP-Templates-2nd--第十一章 泛型库
  • 原文地址:https://blog.csdn.net/m0_45877477/article/details/126077383
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号