关于React的路由使用

一、模块导入

因为具有一定的Vue基础。所以在创建ReactCli方面,以及配置简单的main.tsx、App.tsx就不多说了。本文使用的是typescript + React,但使用 j s 的在配置路由方面依然通用。

npm install react-router-dom || yarn add react-router-dom

这里先说最新的Router版本方法,React Router V6,截至目前的话,版本好像是6.4.

很多方法删了,也很多方法改了。在文末我会提一下..

二、代码导入

这里我就直接把代码附上,方便想直接调试的朋友。代码注释也就是需要注意的点,就不在文中说了。

项目目录

1.main.tsx

import ReactDOM from 'react-dom/client';
import App from "./App";
import { BrowserRouter } from "react-router-dom"
// 引入模块,使用BrowserRouter包裹 项目入口 页面
ReactDOM.createRoot(document.getElementById('root')!).render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
);

2.App.tsx

import { useRoutes }from 'react-router-dom'
import router from './router'
//这里引用了router.tsx文件,如果不使用这种方法,还有另一种写法

//使用useRoutes将路由文件载入
function App(){
  return useRoutes(router)
}
 
export default App;

3.router

import Login from "../Login";
import Home from "../Home";
import { RouteObject } from "react-router-dom";

const router:RouteObject[] = [
  {
    path:'/',
    element:<Home></Home>
  },
  {
    path:'/login',
    element:<Login></Login>
  }
]

export default router

4.Home.tsx

import React, { Component } from 'react'

export class Home extends Component {
  render() {
    return (
      <div>Hello,this is Home page</div>
    )
  }
}

export default Home

5.Login.tsx

import { useNavigate }from 'react-router-dom'

function Login(){

//使用useNavigate做按钮事件的页面跳转
    const navigate = useNavigate()
    const login = () => {
      navigate('/')
    }
  
  return(
    <div>
      <button onClick={login}>Login</button>
    </div>
  )
}
 
export default Login;

三、其他细节

因为V6和V5两个版本并不是方法互通的,所以很多V5的路由跳转在V6都没法实现;同样,V6新定义的自然在V5也没法使用。如果小伙伴需要使用V5,记得先使用

npm uninstall react-router-dom

卸载掉之前的版本,之后

npm install react-router-dom@5.1.2

@之后填写相对应的react-router版本,

这里举例来说,在main.tsx中,V5版本就有很大的不同:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter,Switch,Route} from 'react-router-dom'; // 导入 BrowserRouter
import Index from './index.tsx';
import Test from './test.tsx'

ReactDOM.createRoot(document.getElementById('root')!).render(
  <BrowserRouter>
  <Switch>
      <Route exact path="/">
          <Index/>
      </Route>
      <Route path="/test">
          <Test/>
      </Route>
  </Switch>
</BrowserRouter>
);

并且,在路由跳转中,也是使用的link进行跳转。

react-router的使用相较于Vue来说更加灵活,但Vue的router使用相较于React简单方便。

各有千秋。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
React Router 是一个为 React 应用程序提供路由功能的第三方包。它可以帮助我们在 React 应用程序中 URL,使得用户能够通过 URL 直接访问到特的页面。 使用 React Router,你需要首先安装它。可以通过以下命令来安装: ``` npm install react-router-dom ``` 然后在应用程序中引入路由相关的组件和方法: ```javascript import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom"; ``` 其中,`BrowserRouter` 是一个用于包裹整个应用程序的组件。`Switch` 组件用于包裹多个 `Route` 组件,用于匹配 URL 和组件。`Route` 组件用于定义每个 URL 对应的组件,`Link` 组件用于定义每个链接。 下面是一个简单的例子: ```javascript import React from "react"; import ReactDOM from "react-dom"; import { BrowserRouter as Router, Switch, Route, Link } from "react-router-dom"; function Home() { return <h2>Home</h2>; } function About() { return <h2>About</h2>; } function Users() { return <h2>Users</h2>; } function App() { return ( <Router> <div> <nav> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/about">About</Link> </li> <li> <Link to="/users">Users</Link> </li> </ul> </nav> <Switch> <Route path="/about"> <About /> </Route> <Route path="/users"> <Users /> </Route> <Route path="/"> <Home /> </Route> </Switch> </div> </Router> ); } ReactDOM.render(<App />, document.getElementById("root")); ``` 在这个例子中,我们定义了三个组件:`Home`、`About` 和 `Users`。在 `App` 组件中,我们使用 `Router` 包裹整个应用程序,并在组件中引入了三个链接,分别对应 `Home`、`About` 和 `Users` 组件。使用 `Switch` 和 `Route` 组件,我们将每个 URL 映射到相应的组件。 在这个例子中,如果用户访问 `/about`,则会显示 `About` 组件;如果用户访问 `/users`,则会显示 `Users` 组件;如果用户访问 `/`,则会显示 `Home` 组件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值