关于react-router-dom路由入门教程

 更新时间:2023年03月24日 10:57:04   作者:养只猫  
这篇文章主要介绍了关于react-router-dom路由入门教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

react-router-dom路由

react的路由和vue个人感觉有很大的不同,感觉vue-router比react-router-dom简单,react-router-dom比较绕。

安装

npm install react-router-dom --save

入口文件中做如下配置;其中react-redux是状态管理。

import {BrowserRouter,Route} from 'react-router-dom'//路由跳转
import ReactReduxTest from './ReactReduxTest'
import RouterTest from './RouterTest'
import LoadingRouterTest from './loadingRouterTest'//异步组件用来加载RouterTest这个组件的
import {Provider} from 'react-redux'
import store from './Store/index'
 
const App = (
  //让所有的组件都可以使用store
  //Provider,BrowserRouter下只能有一个div
  //BrowserRouter和Route是路由组件(exact为严格匹配即完全匹配才会跳转)
  <Provider store={store}>
    <div>
      <BrowserRouter>
        <div>
          <Route exact path="/" component={ReactReduxTest}></Route>
          <Route path="/LoadingRouterTest" component={LoadingRouterTest}></Route>
          <Route path="/RouterTest:id" component={RouterTest}></Route>
        </div>
      </BrowserRouter>
    </div>
  </Provider>
)
ReactDOM.render(App, document.getElementById('root'));

上面的配置就不多说了,路由比较重要的是跳转和传参。

react的传参像上面配置的RouterTest:id的意思是要传入一个id参数可以像下面这样的方式传递参数,这是直接在render方法中return的jsx模板中直接使用react-router-dom的Link标签在地址后面直接加上要传递的参数(这里不用再写id字符了)

import {Link,withRouter} from 'react-router-dom'
 
<Link to={'/' + 2}>回到到详情页</Link>

但是在vue中我们一般很少使用标签的形式来跳转页面。所以上面的了解一下就好。

下面是使用js的方法进行跳转的方式

直接传json字符串的原因是因为我们url传递参数的时候有可能要传递两个甚至更多,然后跳转到页面有在用json解析成对象。

this.props.history.push({
      pathname : '/routerTest' + JSON.stringify({id: 1,ids: 2}),//要在url上传递多个参数要将参数放到对象中转成json字符串
    })

url参数的获取

对应的页面在componentDidMount的生命周期中通过this.props.match.params来获取,这里获取到的是字符串需要用json解析下

componentDidMount () {
    console.log(this.props.match.params.id,JSON.parse(this.props.match.params.id),)//接收多个url参数的时候将json字符串转成json对象
  }

这里的url显示为
 

参数是跟在url后面的,这里为什么说这个呢,react-router-dom另一种方式参数是不会出现在URL上的,叫做隐式传参

//隐式传参 
    this.props.history.push({
      pathname : '/',
      query : { id: 3} 
    })

这里跳转后url显示是这样的,然后传递过来的参数通过this.props.location.query来获取,下面打印的是跳转页面的this.props

这种方式有个不好的地方,就是当你刷新页面后会找不到传递过来的参数。

总结

  • 跳转方式:link标签,js方式跳转(这里除了push还有replace等方法)
  • 传参方式:隐式传参,显式传参

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • webpack4 + react 搭建多页面应用示例

    webpack4 + react 搭建多页面应用示例

    这篇文章主要介绍了webpack4 + react 搭建多页面应用示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • React 18 如何更新 state 中的对象

    React 18 如何更新 state 中的对象

    state 中可以保存任意类型的JavaScript值,包括对象,但是,不应该直接修改存放在 React state 中的对象,这篇文章主要介绍了React 18更新state中的对象,需要的朋友可以参考下
    2023-08-08
  • React commit源码分析详解

    React commit源码分析详解

    前两章讲到了,react 在 render 阶段的 completeUnitWork 执行完毕后,就执行 commitRoot 进入到了 commit 阶段,本章将讲解 commit 阶段执行过程源码
    2022-11-11
  • react父组件调用子组件的方式汇总

    react父组件调用子组件的方式汇总

    在react中常用props实现子组件数据到父组件的传递,但是父组件调用子组件的功能却不常用,下面这篇文章主要给大家介绍了关于react父组件调用子组件的相关资料,需要的朋友可以参考下
    2022-08-08
  • react项目中使用插件配置路由的方法

    react项目中使用插件配置路由的方法

    这篇文章主要介绍了react项目中使用插件配置路由的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • react-router-dom V6的配置使用实践

    react-router-dom V6的配置使用实践

    本文主要介绍了react-router-dom V6的配置使用实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 使用react-beautiful-dnd实现列表间拖拽踩坑

    使用react-beautiful-dnd实现列表间拖拽踩坑

    相比于react-dnd,react-beautiful-dnd更适用于列表之间拖拽的场景,本文主要介绍了使用react-beautiful-dnd实现列表间拖拽踩坑,感兴趣的可以了解一下
    2021-05-05
  • React反向代理与CSS模块化的使用案例

    React反向代理与CSS模块化的使用案例

    这篇文章主要介绍了React反向代理与CSS模块化的使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • 详细谈谈React中setState是一个宏任务还是微任务

    详细谈谈React中setState是一个宏任务还是微任务

    学过react的人都知道,setState在react里是一个很重要的方法,使用它可以更新我们数据的状态,下面这篇文章主要给大家介绍了关于React中setState是一个宏任务还是微任务的相关资料,需要的朋友可以参考下
    2021-09-09
  • React中使用react-json-view展示JSON数据的操作方法

    React中使用react-json-view展示JSON数据的操作方法

    react-json-view是一个用于显示和编辑javascript数组和JSON对象的React组件,本文给大家分享React中使用react-json-view展示JSON数据的操作方法,感兴趣的朋友一起看看吧
    2023-12-12

最新评论