首页 > 其他分享 >React路由---react-router-dom基本使用

React路由---react-router-dom基本使用

时间:2022-11-23 00:36:30浏览次数:48  
标签:react dom --- router import Home 路由

1.下载react-router-dom 5的版本
npm i react-router-dom@5
2.在index.js中从react-router-dom中引入 BrowserRouter和HashRouter

BrowserRouter 使用历史模式history来管理路由

HashRouter 使用哈希模式hash来管理路由

// 将引入的BrowserRouter模块取一个别名叫Router
import { BrowserRouter as Router } from 'react-router-dom'
3.将App根组件用Router组件包裹起来

React-router-dom路由系统要求一个路由系统只能有一个Router

root.render(
<React.StrictMode>
  {/* 将App根组件用<Router></Router>组件包裹起来 */}
  <Router>
    <App />
  </Router>
</React.StrictMode>
)
4.分别创建Home和Course组件
import { Component } from "react";

export default class Home extends Component {
  render() {
      return (
          <div>Home</div>
      )
  }
}
import { Component } from "react";

export default class Course extends Component {
  render() {
      return (
          <div>Course</div>
      )
  }
}
5.在App组件中从react-router-dom中引入Route模块
// 引入Route模块
import { Route } from 'react-router-dom'
6.通过Route模块的path属性和component属性设置路径和组件的对应关系
import Course from './Course.js'
import Home from './Home.js'
class App extends PureComponent {
render() {
  return (
    <div id="app">
      <Route path="/home" component={Home}></Route>
      <Route path="/course" component={Course}></Route>
    </div>
  )
}
}
7.从react-router-dom中引入Link模块,添加路由跳转
import { PureComponent } from "react";
// 引入Route模块
import { Link, Route } from 'react-router-dom'

import Course from './Course.js'
import Home from './Home.js'
class App extends PureComponent {
render() {
  return (
    <div id="app">
      {/*
      实现路由跳转
      Link模块的to属性可以是一个字符串,也可以是一个对象
        */}
      {/* <Link to="/home">首页</Link > */}
      <Link to={{ pathname: '/home' }}>首页</Link >
      <Link to="/course">课程</Link >
      <Route path="/home" component={Home}></Route>
      <Route path="/course" component={Course}></Route>
    </div>
  )
}
}
export default App
 

标签:react,dom,---,router,import,Home,路由
From: https://www.cnblogs.com/toufuwqm/p/16916985.html

相关文章

  • React路由---NavLink与路由重定向
    NavLink当我们希望给当前的路由添加一个样式的时候,可以使用NavLink模块来代替Link模块给NavLink添加activeClassName属性,属性名为class名,在样式中定义active样式App.j......
  • GL-Talking about rules 20221122
    TimeTalkingaboutrulesDidyouhavestrictrulestofollowwhenyouwereateenager?Discusswhatguidelinesamodernfamilyshouldfollow?Teenagersshouldn......
  • 003. Mybatis介绍---03单元测试与JUnit4
    1.JUnit4使用方法  2.pom.xml<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.1......
  • 面向对象综合应用--搬家具
    1、需求将小于房子剩余面积的家具摆放到房子中。2、分析步骤需求涉及零个事物:房子和家具,故被案例涉及两个类:房子类和家具类2.1定义类房子类:......
  • 001. MyBatis介绍---01框架的作用
    1.软件开发中的框架  2.框架的优点  3.SSM框架 ......
  • day19 --> (Filter过滤器、Listener监听器)
    Filter:过滤器【JavaWeb三大组件之一:Servlet、Filter、Listener】1、概念生活中的过滤器:净水器,空气净化器,土匪web中的过滤器:当访问服务器的资源时,过滤器可以将请求栏目......
  • 002. MyBatis介绍---02介绍Mybatis
    1.什么是Mybatis  2.Mybatis开发流程  ......
  • O-MVLL代码混淆方式
    在介绍O-MVLL之前,首先介绍什么是代码混淆以及基于LLVM的代码混淆,O-MVLL项目正是基于此而开发来的。有关O-MVLL的概括介绍以及安装和基本使用方式,可参加另一篇随笔https:/......
  • 2022-11-22-6
    1packagecn.itsource._inputsteam;23importjava.io.FileInputStream;4importjava.io.FileNotFoundException;5importjava.io.FileOutputStream;6imp......
  • 2022年 firmware-mod-kit 配置方法
    前言起因是BUUCTFfirmware的很多wp似乎默认了firmware可以配置出来,然而我真的做不到啊。。。我提供一种可能的方法给大家参考,我已经在自己刚下载的Ubuntu上面测试了,成功......