react中简单的配置路由

1.安装react-router-dom

npm install react-router-dom

2.新建文件

src下新建page文件夹,该文件夹下新建login和index文件夹用于存放登录页面和首页,再在对应文件夹下分别新建入口文件index.js;

src下新建router文件用于存放路由配置文件,该文件夹下新建入口文件index.js;

3.实现过程

3.1页面的编写

src/page/index/index.js

function IndexPage() {
  return (
    <div>
      欢迎来到index
    </div>
  );
}

export default IndexPage;

src/page/login/index.js

function LoginPage() {
  return (
    <div>
      欢迎来到login
    </div>
  );
}

export default LoginPage;

3.2路由文件配置

src/router/index.js

// 1.引入方法,用于创建路由实例
import { createBrowserRouter } from 'react-router-dom' 

// 2.引入组件
import LoginPage from '../page/login';
import IndexPage from '../page/index';

// 3.创建router实例,配置路由
const router = createBrowserRouter([ 
  {
    path:"/login", // 路由路径
    element:<LoginPage></LoginPage> // 渲染页面的地方
  },
  {
    path:"/index",
    element:<IndexPage></IndexPage>
  },
  {
    path:"",
    element:<div>欢迎来到首页</div>
  }
])

// 4.暴露路由实例,用于在App.js主入口组件
export default router;

3.3路由绑定

import React, { useState, useRef, useEffect, useContext, createContext } from 'react';
// 1.引入
import { RouterProvider } from 'react-router-dom'
import router from './router';



function App() {
  return (
    <div>
      {/* 2.绑定 */}
      <RouterProvider router={router}></RouterProvider>
    </div>
  );
}

export default App;

4.最终效果

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: React Router v6 的路由配置相对于 v5 有了一些变化。以下是一个简单路由配置示例: ```jsx import { BrowserRouter, Routes, Route } from 'react-router-dom'; import Home from './pages/Home'; import About from './pages/About'; import NotFound from './pages/NotFound'; function App() { return ( <BrowserRouter> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="*" element={<NotFound />} /> </Routes> </BrowserRouter> ); } export default App; ``` 在这个示例,我们首先导入了 `BrowserRouter`、`Routes` 和 `Route` 组件。`BrowserRouter` 是一个包装器组件,用于将路由信息注入到应用程序。`Routes` 组件是一个容器组件,用于包含所有的路由规则。`Route` 组件则是具体的路由规则,它包含了一个 `path` 属性和一个 `element` 属性。`path` 属性用于匹配 URL,`element` 属性则是要渲染的组件。 在这个示例,我们定义了三个路由规则。第一个路由规则匹配根路径 `/`,并渲染 `Home` 组件。第二个路由规则匹配 `/about` 路径,渲染 `About` 组件。第三个路由规则使用通配符 `*`,匹配所有未匹配的路径,并渲染 `NotFound` 组件。 需要注意的是,React Router v6 路由规则不再使用 `exact` 属性来精确匹配路径。如果要精确匹配路径,可以使用 `path` 属性的精确匹配模式,例如: ```jsx <Route path="/about" element={<About />} /> ``` 如果要使用正则表达式匹配路径,可以使用 `path` 属性的正则表达式模式,例如: ```jsx <Route path="/users/:id(\d+)" element={<User />} /> ``` 在这个示例,我们使用了正则表达式 `(\d+)` 来匹配数字类型的用户 ID。 除了 `Routes` 和 `Route` 组件,React Router v6 还提供了一些其他的组件和钩子函数,例如 `Link`、`useNavigate`、`useParams` 等。这些组件和钩子函数可以帮助我们更方便地处理路由相关的逻辑。 ### 回答2: React Router V6 是 React Router 的最新版本,它为开发人员提供了完整的路由解决方案。React Router V6 提供了许多新功能,如 Hooks API、嵌套路由、异步渲染等,这些功能使它成为构建大规模 React 应用程序的理想选择。 React Router V6 的路由配置分为两个部分,一部分是路由的定义,另一部分是路由的渲染。为了定义路由,你需要使用`<Routes>`组件,它允许你声明路由规则和组件的对应关系。在这个组件内部,你可以定义多个路由,每个路由对应一个路径。例如: ```jsx import { Routes, Route } from 'react-router-dom'; function App() { return ( <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> ); } ``` 在上面的代码,我们定义了三个路由:root 路径为 `/`,路径为 `/about`,以及路径为 `/contact`。每个路由对应一个组件的实例,这些组件最终会在页面上渲染。 除了定义路由,你还需要渲染它们。为此,你需要在你的应用程序添加一个 Router 组件,它为路由提供了一个上下文环境。例如: ```jsx import { BrowserRouter as Router } from 'react-router-dom'; function App() { return ( <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Router> ); } ``` 上面的代码我们添加了 `<Router>` 组件来渲染路由。这个组件将路由放在一个上下文环境,使它们能够与整个应用程序进行交互。 通过使用 React Router V6,你可以灵活地定义路由规则,并动态地切换路由。它的 API 是直观的,易于学习和使用。无论你是初学者还是有经验的开发人员,都可以使用 React Router V6 来构建高性能的 React 应用程序。 ### 回答3: React Router是一个非常流行的前端路由库,它提供了一种直观的方式来处理JavaScript应用程序路由React Router v6是React Router的最新版本,它经过重构和改进,使其更加易用和灵活,同时提供了强大的路由功能。 React Router v6的路由配置包括Route、Routes和Link三个组件。其,Route用于定义与路径匹配的组件,Routes用于定义一个或多个Route,以及路由的导航层次结构,Link用于在应用程序导航。接下来,我们将具体介绍React Router v6的路由配置。 1. 安装React Router v6 在开始配置路由时,我们需要先安装React Router v6。通过npm或yarn安装React Router v6: ``` npm install react-router-dom@next ``` 或 ``` yarn add react-router-dom@next ``` 2. 在应用程序引入React Router 在应用程序,我们需要导入Router组件,并将应用程序包裹在Router组件。 ```javascript import { BrowserRouter as Router } from 'react-router-dom'; function App() { return ( <Router> {/* 应用程序的其它内容 */} </Router> ); } ``` 3. 配置路由React Router v6,我们使用Routes组件来定义路由。Routes组件可以包含一个或多个Route子组件,并定义每个子组件与路径的匹配方式。 ```javascript import { Routes, Route } from 'react-router-dom'; function App() { return ( <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Router> ); } ``` 在上面的代码,我们定义了三个Route组件,每个Route组件都与不同的路径相关联。当浏览器的URL路径与路径模式匹配时,React Router会自动呈现相关的组件。 4. 定义嵌套路由 React Router v6允许我们定义嵌套路由,以支持导航层次结构。 ```javascript import { Routes, Route } from 'react-router-dom'; function App() { return ( <Router> <Routes> <Route path="/" element={<Home />} /> <Route path="/products" element={<Products />}> <Route path="/:productid" element={<ProductDetails />} /> </Route> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Router> ); } ``` 在上面的代码,我们定义了一个名为Products的组件,它包含一个名为ProductDetails的子组件,用于显示特定的产品详情。当URL路径为/products时,React Router会呈现Products组件,并根据URL路径参数(例如/products/1)呈现ProductDetails组件。 5. 定义导航链接 React Router v6提供了Link组件,用于在应用程序导航。我们可以使用Link组件创建一个导航链接,并指定链接对应的路径。 ```javascript import { Link } from 'react-router-dom'; function App() { return ( <Router> <nav> <ul> <li> <Link to="/">Home</Link> </li> <li> <Link to="/products">Products</Link> </li> <li> <Link to="/about">About</Link> </li> <li> <Link to="/contact">Contact</Link> </li> </ul> </nav> <Routes> {/* 路由定义 */} </Routes> </Router> ); } ``` 在上面的代码,我们使用Link组件创建了四个导航链接,分别对应于不同的路径。当用户点击链接时,React Router会自动导航到链接指定的路径。 React Router v6是一个功能强大、易用的前端路由库。通过定义Route和Routes组件,我们可以轻松支持不同的URL路径,并根据导航链接进行导航。如果您正在构建React应用程序,并且需要为其定义路由React Router v6将是一个很好的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值