React-router路由全部使用方法

一、基本用法

react-router安装命令

npm install -S react-router-dom

安装完了依赖关系,在代码编辑器中打开 package.json 文件,你会看到 react-router-dom 库的依赖版本。

“dependencies": {
  // 安装的其余依赖项
 "react-router-dom": "^6.2.1",
},

二、创建第一个路由

要使用React Router库创建第一个路由,在index.js中,添加以下导入语句。

import {BrowserRouter } from 'react-router-dom' //引入react-router

因为所有的路由都需要用同一个BrowserRouter包起来 所以我直接在index.js文件中把App组件给包了起来

import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter } from 'react-router-dom' //引入react-router
import App from './components/App/App';

ReactDOM.render(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
    
  </React.StrictMode>,
  document.getElementById('root')
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals

这是从 react-router-dom 库导入的第一个组件。它用于包装不同的路线,它使用HTML5 history API来跟踪React应用程序中的路由历史记录。

为了在下面的演示中创建第一个路由,让我们创建一个名为 Home 的基本函数组件,返回一些JSX。

render() {
        return (
            <div>
                React-router教程
            </div>


        )
    }

再创建另一个名为 About 的函数组件,来进行页面跳转切换只有当浏览器窗口中的URL为about的时候呈现

function About(){
    
    return(
        <div>
            About React-router页面
        </div>
    )
}

然后,为 组件添加注册 Route路由

App,js文件

 import {Route, Routes } from 'react-router-dom' //引入react-router

<div>
        {/* 注册路由(编写路由链接) */}
    <Routes >
        <Route path="/about" element={<About />} />
        <Route path="/home" element={<Home />}  />
    </Routes>

 </div>

三、添加导航菜单

首先在库中导入Link添加到引用的文件:

import { Link, Route, Routes } from 'react-router-dom' //引入react-router

在HTML中的不同网页之间导航的概念是使用a标签锚点标记跳转页面:

<a href="">Some Link Name</a>

在React应用程序中使用这种方法将导致在每次渲染新视图或页面本身时刷新web页面。为了避免刷新网页,react-router-dom 库提供了 Link 组件,类似于a标签。

import React from 'react'
import { Link, Route, Routes } from 'react-router-dom' //引入react-router
// import Home from '../Home/Home'
import About from '../About/About'
import Home from '../Home/Home';
import Dz from '../Dz/Dz';
function App() {
  return (
    <div className="App">
      <div><h2>欢迎光临</h2></div>
      {/* 路由连接切换组件 */}

      <Link to="/about">About</Link><br />
      <Link to="/home">Home</Link>

      <div>
        {/* 注册路由(编写路由链接) */}
        <Routes >
            <Route path="/about" element={<About />} />
            <Route path="/home" element={<Home />}  />
        </Routes>
      </div>
    </div>
  );
}

export default App;

Link组件中的to属性指向路径后 Router根据Link指向的路径通过path属性 在element中显示对应的组完成组件页面跳转。

四、嵌套路由

举例:在Home组件中再写一个二级路由代码如下:

我可以在Router标签中再写一个Router标签作为子路由:

{/* 注册路由(编写路由链接) */}
 <Routes >
    <Route path="/about" element={<About />} />
    <Route path="/home" element={<Home />}  >
       <Route path="dz" element={<Dz />} />
    </Route>        
 </Routes>

dz就是home组件的子路由

dz.js

import React, { Component } from 'react'

export default class Dz extends Component {
    static propTypes = {

    }

    render() {
        return (
            <div>
                嵌套路由 home的子路由
            </div>
        )
    }
}

随便返回一点jsx内容

写嵌套路由需要在home页面引入Outlet组件 代码如下

import React, { Component } from 'react'
import { Outlet,Link } from 'react-router-dom' //引入react-router
export default class Home extends Component {
    static propTypes = {

    }
    render() {
        return (
            <div>
                React-router教程
                <p>
                <Link to="/home/dz">子路由</Link>
                </p>
                <Outlet></Outlet>
            </div>


        )
    }
}

这就是嵌套路由

五、通过事件跳转路由

首先是在页面中引入react-router-dom中的useNavigate在函数组件中使用

定义一个let navigate = useNavigate()

通过点击事件跳转路由

<input type='button' value='按钮跳转' onClick={()=>{navigate('/home')}} />

全部代码:

import React, { Component } from 'react'
import {useNavigate} from 'react-router-dom'

function About(){
    let navigate = useNavigate()
    return(
        <div>
            About
            <input type='button' value='按钮跳转' onClick={()=>{navigate('/home')}} />
        </div>
    )
}

export default About

这是在about组件中写的一个按钮点击事件跳转到home组件。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
React RouterReact的一种路由管理工具,它允许我们在应用程序建立路由,并通过不同的URL路径来加载不同的页面。 而react-router-config是React Router的一个附加库,它提供了一种以配置方式来定义应用程序路由方法路由切入动画是指在切换页面时,为页面添加一些过渡效果和动画,以提升用户体验。 使用react-router-config实现路由切入动画的步骤如下: 1. 首先,在路由配置文件定义各个页面的路由信息,并设置对应的组件。 2. 在路由配置文件,为每个路由定义一个transition属性,用于标识该路由的过渡效果。 3. 在根组件使用React Router提供的Switch组件来包裹所有路由,并使用TransitionGroup组件来包裹Switch组件。 4. 在根组件使用自定义的AnimatedSwitch组件来替换React Router提供的Switch组件,并将路由配置文件传递给AnimatedSwitch组件。 5. 在AnimatedSwitch组件根据当前路由的transition属性,为切换的页面添加不同的过渡效果和动画。 例如,可以定义一个FadeIn动画效果,在路由配置文件为需要应用该动画效果的路由设置transition属性为'fade-in',然后在AnimatedSwitch组件根据该属性为页面添加相应的CSS动画样式。 总而言之,使用react-router-config可以方便地配置应用程序的路由信息,并结合一些CSS动画库,可以实现各种炫酷的路由切入动画。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值