IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React - 路由基础 -> 正文阅读

[JavaScript知识库]React - 路由基础

React路由介绍

现代的前端应用大多数是SPA(单页应用程序),也就是只有一个HTML页面的应用程序。因为它的用户体验更好、对服务器压力更小,所以更受欢迎。为了有效的使用单个页面来管理多页面的功能,前端路由应运而生。

  • 前端路由功能:让用户从一个视图(页面)导航到另一个视图(页面)
  • 前端路由是一套映射规则,在React中,是URL路径组件的对应关系
  • 使用React路由简单来说,就是配置路径组件

路由的基本使用

使用步骤

  1. 安装: yarn add react-router-dom

    如果没有安装yarn工具的,需要先全局安装一下yarn:npm install -g yarn

  2. 导入路由的三个核心组件: Router / Route / Link

import {BrowserRouter as Router, Route, Link} from 'react-router-dom'
  1. 使用 Router 组件包裹整个应用

在这里插入图片描述

  1. 使用Link组件作为导航菜单(路由入口)
    在这里插入图片描述

  2. 使用 Route组件 配置路由规则和要展示的组件(路由出口)
    在这里插入图片描述

常用组件说明

Router组件:包裹整个应用,一个React应用只需要使用一次

  • 两种常用的Router: HashRouter和BrowserRouter
  • HashRouter: 使用URL的哈希值实现 (localhost:3000/#/first)
  • 推荐 BrowserRouter:使用 H5 的 history API实现(localhost3000/first)

Link组件:用于指定导航链接(a标签)

  • 最终Link会编译成a标签,而to属性会被编译成 a标签的href属性
    在这里插入图片描述

Route组件:指定路由展示组件相关信息

  • path属性:路由规则,这里需要跟Link组件里面to属性的值一致
  • component属性:展示的组件
  • Route写在哪,渲染出来的组件就在哪
<Route path="/first" component={First}></Route>

路由的执行过程

  • 当我们点击Link组件的时候,修改了浏览器地址栏中的url
  • React路由监听地址栏url的变化
  • React路由内部遍历所有的Route组件,拿着Route里面path规则与pathname进行匹配

在这里插入图片描述

  • 当路由规则(path)能够匹配地址栏中的pathname时,就展示该Route组件的内容

编程式导航

  • 编程式导航:通过JS代码来实现页面跳转
  • history是React路由提供的,用于获取浏览器历史记录的相关信息
  • push(path):跳转到某个页面,参数path表示要跳转的路径
  • go(n):前进或后退功能,参数n表示前进或后退页面数量

在这里插入图片描述

默认路由

  • 现在的路由都是通过点击导航菜单后展示的,如果进入页面的时候就主动触发路由呢
  • 默认路由:表示进入页面时就会匹配的路由
  • 默认路由:只需要把path设置为 '/'

在这里插入图片描述

匹配模式

模糊匹配模式

  • 当Link组件的to属性值为 ‘/login’ 时候,为什么默认路由也被匹配成功?
  • 默认情况下,React路由是模糊匹配模式
  • 模糊匹配规则:只要 pathname 以 path 开头就会匹配成功
    在这里插入图片描述
    path 代表Route组件的path属性
    pathname 代表Link组件的to属性(也就是 location.pathname)
    在这里插入图片描述

精准匹配

  • 给Route组件添加 exact 属性,让其变为精准匹配模式
  • 精确匹配:只有当 pathpathname 完全匹配时才会展示改路由

在这里插入图片描述
推荐:给默认路由添加 exact 属性

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:50:47  更:2021-10-24 14:52:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 22:45:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码