react路由基础解读(Router、Link和Route)

 更新时间:2023年07月04日 10:37:00   作者:mapbar_front  
这篇文章主要介绍了react路由基础解读(Router、Link和Route),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

react路由(Router、Link和Route)

Facebook对react进行持续的改进,路由作为其中最重要的一部分,在4.0版本对其进行了大量的优化,总的来说,简单易用!之前使用react路由的时候,我们引入的是react-router包。现在改版之后,我们引入的包是react-router-dom包。

改版之后的react-router-dom路由,我们要理解三个概念,Router、Route和Link。

1、RouterRouter

我们可以把它看做是react路由的一个路由外层盒子,它里面的内容就是我们单页面应用的路由以及路由组件

使用方式:

import { BrowserRouter as Router } from "react-router-dom";
class Main extends Component{
    render(){
        return(
        <Router>
            <div>
                //otherCoding
            </div>
        </Router>
        )
    }
}

2、LinkLink

是react路由中的点击切换到哪一个组件的链接,(这里之所以不说是页面,而是说组件,因为切换到另一个界面只是展示效果,react的本质还是一个单页面应用-single page application)。

基本使用方式:

import { BrowserRouter as Router, Link} from "react-router-dom";
class Main extends Component{
    render(){
        return(
        <Router>
            <div>
                <ul>
                    <li><link to='/'>首页</Link></li>
                    <li><link to='/other'>其他页</Link></li>
                </ul>
            </div>
        </Router>
        )
    }
}

特别说明:

第一、Router下面只能包含一个盒子标签,类似这里的div。

第二、Link代表一个链接,在html界面中会解析成a标签。作为一个链接,必须有一个to属性,代表链接地址。这个链接地址是一个相对路径。

第三、Route,是下面要说的组件,有一个path属性和一个组件属性(可以是component、render等等)。

3、RouteRoute

代表了你的路由界面,path代表路径,component代表路径所对应的界面。

使用方式:

import React,{ Component } from "react";
import { render } from "react-dom";
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
class Home extends Component{
    render(){
        return (
            <div>this a Home page</div>
        )
    }
}
class Other extends Component{
    render(){
        return (
            <div>this a Other page</div>
        )
    }
}
class Main extends Component{
    render(){
        return (
            <Router>
                <div>
                    <ul>
                        <li><Link to="/home">首页</Link></li>
                        <li><Link to="/other">其他页</Link></li>
                    </ul>
                    <Route path="/home" component={Home}/>
                    <Route path="/other" component={Other}/>
                </div>
            </Router>
        )
    }
}
render(<Main />,document.getElementById("root"));

react路由基础、使用与执行

接下来我们将会介绍React路由的基本使用方法,以及什么是默认路由,路由是怎么实现跳转的,他们是如何进行匹配的。

1、React路由基础

现代前端应用大都是SPA,那么什么是SPA呢?

SPA就是单页应用程序,他的优点是用户体验好、服务器压力小,但是我们要把很多内容放在一个页面上,为了有效使用单个页面管理原来多页面的功能,前端路由应运而生。

前端路由实现功能:从一个页面到另一个页面

映射规则:URL路径和组件对应功能(配置路径和组件配对)

2、路由的基本使用

1)安装react-router-dom

2)导入路由核心组件(当然我们要按需导入)

  • BrowserRouter as Router(Router就是BrowserRouter的别名)
  • Route
  • Link

3)使用React组件包裹整个应用(重要)

4)使用Link组件作为导航菜单(路由入口),会被编译成a标签

<Link to="/first">页面1</Link>

5)使用Route组件配置路由规则和要展示的组件(路由出口)

<Route path="/first(和路由入口匹配)" component={要展示的组件的名}></Route>

但是我们的内容展示在哪呢?Route写在哪就把内容渲染在哪

3、路由执行过程

1)点击Link组件,修改浏览器地址栏URL

2)React路由监听到地址栏变化

3)React路由遍历所有Route组件,使用路由规则path与pathname匹配

4)当匹配成功就展示Route组件内容

编程式导航:通过JS代码实现页面的跳转

4、默认路由

进入页面就会展示的路由,进入页面就会被匹配到展示 。

<Route path='/'>

5、路由匹配模式

1)模糊匹配模式

a)”/“所有pathname都可以被匹配

b)只要pathname是以path开头的都会匹配成功

c)pathname指得是Link组件中to属性的值

d)path指的是Route组件中path属性的值

2)精确匹配

a)给Route组件添加exact属性,让其变成精确匹配

b)只有pathname和name完全相同才会被展示

心得:React路由的一切都是组件、我们可以像思考组件一样去思考路由

总结

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

相关文章

  • React事件处理过程中传参的实现方法

    React事件处理过程中传参的实现方法

    这篇文章主要介绍了React事件处理过程中传参的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • React中如何处理承诺demo

    React中如何处理承诺demo

    这篇文章主要为大家介绍了React中如何处理承诺demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • React组件二次包装的具体实现

    React组件二次包装的具体实现

    本文主要介绍了React组件二次包装的具体实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 详解react的两种动态改变css样式的方法

    详解react的两种动态改变css样式的方法

    这篇文章主要介绍了详解react的两种动态改变css样式的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • React-router 4 按需加载的实现方式及原理详解

    React-router 4 按需加载的实现方式及原理详解

    本篇文章主要介绍了React-router 4 按需加载的实现方式及原理详解,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • 浅谈在react中如何实现扫码枪输入

    浅谈在react中如何实现扫码枪输入

    这篇文章主要介绍了浅谈在react中如何实现扫码枪输入,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • React中DOM事件和状态介绍

    React中DOM事件和状态介绍

    这篇文章主要介绍了React中DOM事件和状态介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • react+antd 递归实现树状目录操作

    react+antd 递归实现树状目录操作

    这篇文章主要介绍了react+antd 递归实现树状目录操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • react中关于useCallback的用法

    react中关于useCallback的用法

    这篇文章主要介绍了react中关于useCallback的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • React DOM-diff 节点源码解析

    React DOM-diff 节点源码解析

    这篇文章主要为大家介绍了React DOM-diff节点源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02

最新评论