【React】React-router路由

这篇具有很好参考价值的文章主要介绍了【React】React-router路由。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

路由的定义

路由是根据不同的url地址展示不同的内容或页面

注: 一个针对react设计的路由解决方案,可以友好的帮助解决React components到URL之间的同步映射关系

路由安装

npm i react-router-dom@5

路由的使用

导入路由

import {HashRouter as Router,Redirect,Route,Switch} from 'react-router-dom'

注:路由模式有HashRouterBrowserRouter两种模式,其中BrowserRouter的路径没有#,样式好看,真正朝后端发请求,后端若没有对应的路径去处理路径,就会404

定义路由

<Route path="/films" component={Films} />

其中path是对应的路由路径component是与路由对应的组件

Switch的使用

<Switch>
                <Route path="/films" component={Films} />
                <Route path="/cinemas" component={Cinemas} />
                <Route path="/center" component={Center} />

</Switch>

Switch的功能与switch语句功能一样,对传入的路由进行匹配选择,当匹配到一个path后将不再继续进行匹配

Rediret的使用

对于匹配不到的路径,可以使用Redirect进行重定向,直接调转到某个指定页面

<Redirect from='/' to='/films' exact />

注意:Redirect的的使用要与Switch结合使用,且在Switch中写在Route之后

嵌套路由

在父组件中定义路由

<Switch>
    <Route path="/films/nowplaying" component={nowplaying} />
    <Route path="/films/coming" component={coming}/>
   	<Route path="/films/comingsoon" component={comingsoon} />
    <Redirect from='/films' to='/films/nowplaying'/>
</Switch>

路由跳转模式

声明式导航

<NavLink to={"/films"} activeClassName="active">电影</NavLink>

编程式导航

//方式一--通过父组件传的props参数
props.history.push ('/films')

//方式二--引入useHistory
import { useHistory } from 'react-router-dom'

 history.push(`/films`)

路由传参

路由传参共有三种模式–动态路由传参query传参state传参

动态路由传参

直接将传入的参数放置在路径中

  history.push(`/detail/${id}`)

子组件获取页面id

props.match.params.myid

query传参

将传入的参数赋值到query参数中,自动拼接

 history.push({pathname:"/detail",query:id})

子页面获取页面id

props.location.query

state传参

与query参数相似,将传入的参数赋值到state参数中,自动拼接

history.push({pathname:"/detail",state:{myid:id}})

子页面获取页面id

props.location.state.myid

路由拦截

对于某些页面的跳转需要用户满足一些条件,可以通过路由拦截阻止未满足的用户跳转到指定页面

<Route path='/center' render={(props)=>{
  	return isAuth()? <Center {...props}></Center>:<Redirect to='/login' />
                }} />

反向代理

Reactke通过Proxy进行反向代理,解决跨域问题

https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development

安装包下载

npm install http-proxy-middleware --save

在src文件夹下建立setuoProxy.js文件

文件内容如下

const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/ajax',  //转发请求--接口地址带有/ajax前缀的接口路径才会被转发给target
    createProxyMiddleware({
      target: 'https://i.maoyan.com',   //target是api服务器访问的地址
      changeOrigin: true,
    })
  );
};

注:可配置多个代理

css module

在React中每个组件的css样式会统一出现在主页面,为避免样式覆盖,css module默认局部样式

使用步骤:

  • css文件命名后缀改为.module.css

  • 在组件中引入并可命名为style

    import style from './css/Film.module.css'
    
  • 在对应的元素中使用该类名

    <div className={style.film}>
    

注意:类名可进行字符串拼接

<div className={style.film +" aaa"}>

在css module文件中定义全局样式

:global(#kerwin){
	color:red
}

欢迎各位评论指正,期待你们的支持✨✨✨文章来源地址https://www.toymoban.com/news/detail-415788.html

到了这里,关于【React】React-router路由的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React-学习笔记(8—react-router@5 and @6)

    目录 1、react-router@5 1-1、在项目中安装路由 1-2、一个项目使用一个路由器来管理路由即可 1-3、 路由组件和一般组件的区别 1-4、使用 NavLink 1-5、封装 NavLink —— MyNavLink 1-6、使用 Switch 标签 1-7、BrowserRouter解决多级路径匹配样式丢失问题 1-8、路由的模糊匹配和严格匹配 1-9、路

    2024年02月12日
    浏览(33)
  • react-router5: 地址栏变化,页面没变

    今天在写 react-router demo 的时候,出现了一个问题,浏览器地址栏变了,但是页面没变 手动刷新一下就变了 解决办法:

    2023年04月09日
    浏览(42)
  • 【前端知识】React 基础巩固(三十九)——React-Router的基本使用

    Router中包含了对路径改变的监听,并且会将相应的路径传递给子组件。 Router包括两个API: BrowserRouter使用history模式 HashRouter使用hash模式(路径后面带有#号) 尝试在项目中使用HashRouter: 安装Router 在 index.js 中引入并使用HashRouter Routes:包裹所有的Route,在其中匹配一个路由(

    2024年02月14日
    浏览(46)
  • React-Router 5.0 制作导航栏+页面参数传递

    使用 React 构建 SPA 应用(单页面应用),要想实现页面间的跳转,首先想到的就是使用路由。在 React 中,常用的有两个包可以实现这个需求,那就是 react-router 和 react-router-dom 。本文主要针对 react-router-dom 进行说明。 众所周知, JS 由 DOM BOM ECMAScript 组成, React-Router-Dom 使用 BOM 提供

    2024年02月08日
    浏览(32)
  • 一文了解 history 和 react-router 的实现原理

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。 本文作者:霜序 在前一篇文章中,我们详细的说了 react-router@3.x 升级到 @6.x 需要注意的问题以及变更的使用方式。 react-router 版本更新

    2024年02月12日
    浏览(30)
  • 超级实用!React-Router v6实现页面级按钮权限

    大家好,我是王天~ 今天咱们用 reac+reactRouter来实现页面级的按钮权限功能。这篇文章分三部分,实现思路、代码实现、踩坑记录。 嫌啰嗦的朋友,直接拖到第二章节看代码哦。 通常情况下,咱们为用户添加权限时,除了页面权限,还会细化到按钮级别,比如、新增、删除

    2024年02月08日
    浏览(30)
  • 创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署

    全局安装 create-react-app 说明:不建议安装全局,建议使用 npx 命令安装,具体可参考官网,如下: 官网: https://zh-hans.legacy.reactjs.org/docs/create-a-new-react-app.html. 1.2.1 问题1——npm ERR! code ENOTFOUND(网络问题clashx) 问题描述,如下: 解决问题——方式1 如果使用了clashx,可能是它

    2024年02月07日
    浏览(51)
  • 【退役之重学前端】使用vite+vue3+vue-router,重构react+react-router前后端分离的商城后台管理系统

    前言: 对前端各个技术板块,HTML、CSS、JavaScript、ES6、vue家族,整体上能“摸其大概”。笔者计划重构一个基于react的商城后台管理系统。 —— 2024年2月16日 vue3 sass bootstrap ES7 前后端分离 分层架构 模块化开发 npm vite git

    2024年02月20日
    浏览(42)
  • React-路由 react-router-dom

    前端路由的功能:让用户从一个页面跳转到另一个页面。 前端路由是一套映射规则 ,在 React 中, 是 URL 路径与组件的对应关系 。 使用 React 路由简单来说就是配置 路径与组件(配对) 。 路由的本质: 一个路径 path 对应唯一的一个组件 component 当我们访问一个 path 自动把 p

    2024年02月02日
    浏览(32)
  • React 路由react-router-dom详解

    前面我们先了解一下 路由是什么? 路由分类有哪些?内置API有哪些 ? 可能有点枯燥,不喜欢看的直接跳过 ! 单页Web应用(single page web application,SPA)。 整个应用只有一个完整的页面。 点击页面中的链接不会刷新页面,只会做页面的局部更新。 数据都需要通过ajax请求获取

    2023年04月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包