react中使用路由起手式,一些思路和细节。

这篇具有很好参考价值的文章主要介绍了react中使用路由起手式,一些思路和细节。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.安装并配置

我们选择使用react-router实现路由效果

yarn add react-router-dom

下载后需要对Route进行引入,是个内置的组件。该组件是有两个属性一个是path,一个是component,path是组件对应的路由,component是对应的组件

二.路由的基本使用

  1. <App>的最外侧包裹了一个<BrowserRouter><HashRouter>
//整个应用需要使用一个路由器去包裹
import {BrowserRouter} from 'react-router-dom'
<BrowserRouter>
    <App />
</BrowserRouter>

react中使用路由起手式,一些思路和细节。,react.js,前端,前端框架
2. 导航的a标签改为Link标签
<Link to="/xxx">Demo<.Link>
3. 导航区写Route标签进行路径的匹配
<Route path='/xxx' compoent={引入的组件名称}

import React, { Component } from 'react'
import { Link, Route,Switch } from 'react-router-dom'
import Home from "./home"
import About from "./about"
export default class MenuLeft extends Component {
    render() {
        return (
            <div>
                <Link to='/home'>Home</Link>
                <Link to='/about'>about</Link>
                {/* 注册路由 */}
                    <Route path='/home' component={Home}></Route>
                    <Route path='/about' component={About}></Route>
                    {/* !!!注意这种写法将不生效<Route path='/about' component={About}> </Route>,因为标签之间有空格 */}
            </div>
        )
    }
}

三、路由组件和一般组件

区分方式:使用方式

  • 一般组件使用方式<Home/>,默认props为空对象
  • 路由组件使用方式<Route path='/home' component={Home}></Route>,接收到三个固定的属性
    history:
      go: f go(n)
      goBack: f goBack()
      goForward: f goForward( )
      push: f push(path, state)
      replace: f replace(path, state)
    location:
      pathname: “/about
      search:” "
      state: undefined
    match:
      params: ()]
      path: "/about’
      url: "/about’

    react中使用路由起手式,一些思路和细节。,react.js,前端,前端框架

四、向路由组件传递参数

1. params参数
  路由链接(携带参数):<Link to='/demo/test/tom/18'}>详情</Link>
  注册路由(声明接收):<Route path="/demo/test/:name/:age”component=(Test)/>
  按收参数: const {id,title} = this.props,match.params
2. search参数
  路由链接(携带参数):<Link to='/demo/test?name=tom&age=18')>详情</Link>
  注册路由(无需声明,正常注册即可):<Route path="/demo/test”component=(Test)/>
  按收参数: const {search} = this,props,location
  备注:获取到的search是urlencoded编码字符求,需要借助querystring解析
3. stats参数
  路由链接(携带参数):<Link to=({path:'/demo/test',state:(name:'tom',age:18)))>详情</Link>
  注册路由(无需声明,正常注册即可):<Route path="/demo/test"component=(Test)/>
  接收参数: this.props,location,state备注:刷新也可以保留住参数

五、repalce和push

路由跳转默认为push模式,如需开启replace模式

<Link to='/about' repalce>about</Link>

六、编程式路由导航

》路由组件
核心:借助his.prosp.hstory对象上的API对操作路由跳转、前进、后退。一些参数规则请向上移步路由组件和一般组件部分查看。

  • this.prosp.history.push()
  • this.prosp.history.replace()
  • this.prosp.history.goBack()
  • this.prosp.history.goForward()
  • this.prosp.history.go()
repalceShow = (id,title) =>{
//params
this.props.history.push(`/home/message/detail/${id}/${title}`)
//searh
this.props.history.push(`/home/message/detail/?id={id}&title={title}`)
//state
this.props.history.push('/home/message/detail',{id,title})
}

》一般组件

//更改组件暴露方式,通过withRouter加工一般组件,让一般组件具备路由组件所特有的API
import { withRouter } from 'react-router-dom'
class MenuLeft extends Component {
    render() {
        .....
    }
}
export default withRouter(MenuLeft )

end ,一些学习资源文章来源地址https://www.toymoban.com/news/detail-645464.html

到了这里,关于react中使用路由起手式,一些思路和细节。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • VisualSVN Server 使用过程中一些细节

    VisualSVN Server 是一款免费的版本管理工具,具有简便易用的特点。本文就使用VisualSVN Server 中的一些常见的细节问题略作称述。 本文使用的相关安装环境如下所示: VisualSVN Server 5.1.3 windows 2012server 这里使用的VisualSVN下载路径:https://www.visualsvn.com/server/download/ ,选择对应的64位

    2024年02月06日
    浏览(54)
  • React - Redux Hooks的使用细节详解

    Redux中Hooks介绍 在之前的redux开发中,为了让组件和redux结合起来,我们使用了react-redux库中的connect : 但是这种方式必须使用高阶函数结合返回的高阶组件; 并且必须编写:mapStateToProps和 mapDispatchToProps映射的函数, 具体使用方式在前面文章有讲解; 在Redux7.1开始,提供了Hook的方式

    2024年02月02日
    浏览(50)
  • React中的setState使用细节和原理解析

    前面我们有使用过setState的基本使用, 接下来我们对setState使用进行详细的介绍 使用setState的原因 开发中我们并不能直接通过修改state的值来让界面发生更新 : 因为我们修改了state之后,希望React根据最新的State来重新渲染界面,但是 this.state 这种方式的修改React并不知道数据发

    2024年02月03日
    浏览(40)
  • React Hook - useEffecfa函数的使用细节详解

    useEffecf基本使用 书接上文, 上一篇文章我们讲解了State Hook, 我们已经可以通过这个hook在函数式组件中定义state 我们知道在类组件中是可以有生命周期函数的, 那么如何在函数组件中定义类似于生命周期这些函数呢? Effect Hook 可以让你来完成一些类似于class中生命周期的功能; 事

    2023年04月12日
    浏览(35)
  • 【QT】Qt Charts的实际使用中的一些小细节完善如:resetZoom、fitInView

    在Qt中, 使用 Qt Charts来创建和操作图表,重置图表缩放状态的功能可以通过调整图表视图的缩放比例来实现。Qt Charts中的 QChartView 提供了相关的方法来控制图表的缩放和平移。 示例代码,以及如何对此功能进行扩展: chartView-resetTransform(); 是重置图表视图的缩放到默认状态。

    2024年04月17日
    浏览(38)
  • 一些知识点小细节

    当遇到的问题有关逆序输出,可以转换一下思想,就是使用for循环的时候,i的初始化是从数组或者是字符串的最后一个,然后注意设置循环结束的条件,最重要的是不要忘记i--;而不是I++;  注意:当要逆序输出的是字符串类型,可以使用StringBuilder类,因为StringBuilder类有 r

    2024年04月13日
    浏览(40)
  • 线性代数的一些小细节

    1 .矩阵乘法满足结合律,但不满足交换律。 如下图中,UWQ三个矩阵,(UW)Q 和U(WQ)的2种结合,证明矩阵乘法满足结合律。 AB 和BA的表达式,如下图中,相同的条件是对应的8项都相同(两个对称矩阵必然满足条件),但是实际上,矩阵展开后的x和y位置是是转置的,只有对角线上

    2024年02月16日
    浏览(35)
  • 【经验】STM32的一些细节

    这两天 碰到的奇葩问题是 STM32定时器同步的问题。 我的设计本意是:使用定时器T3以100us的周期来定时发送命令给 FPGA。由于编码器出结果的最长时间为51us。因此,希望PWM中断要滞后于T3 约60us 。 调试过程:分别在T3和PWM中断中置IO1, IO2. 观察波形,发现IO1和IO2的周期都对,但

    2024年02月20日
    浏览(38)
  • React路由使用步骤

    React Router 以三个不同的包发布到 npm 上,它们分别为: react-router: 路由的核心库,提供了很多的:组件、钩子。 react-router-dom: 包含react-router所有内容,并添加一些专门用于 DOM 的组件,例如 BrowserRouter 等 。 react-router-native: 包括react-router所有内容,并添加一些专门用于ReactNa

    2023年04月22日
    浏览(27)
  • React 路由使用-详细介绍

    路由初使用 srcpageArticleindex.js srcrouterindex.js srcindex.js 跳转的两种方式 方式一 :声明式导航跳转,原理是转换为 a 标签了 方式二 :命令式导航, 编程式导航是指通过useNavigate\\\"钩子得到导航方法,然后通过调用方法以命令式的形式进行路由跳转,比如想在登录请求完毕之后

    2024年02月14日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包