博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react-router 4.x
阅读量:6816 次
发布时间:2019-06-26

本文共 2294 字,大约阅读时间需要 7 分钟。

什么时候使用react-router

当我们的项目存在多个页面的时候,我们可以使用像<a/>标签这样来跳转,但是提供react-router给了我们更好的选择。

react-router是什么

由于在react中,我们使用的都是组件,于是react-router也采用了这种方式,所以react-router其实提供给我们使用的都是以组件形式存在的。我们使用的时候就像我们以前使用组件那样使用就行了。如果想详细了解请参考官方文档,写的很好,建议可以看一下

react-router安装

我们使用的所有的react-router组件都应该来自这个库

npm install react-router-domimport { BrowserRouter, Route, Link... } from 'react-router-dom'

react-router基本组件

Routers(路由器组件<BrowserRouter><HashRouter>)

我们app的最外层必须包含一个Router,Router包括<BrowserRouter><HashRouter>,在web开发中,我们使用前者。而且它会为组件注入history,正是有history,才能进行一系列的路由操作,并且一个Router下面只能包含一个子节点,基于这个原因我们可以在下面使用一层<div>.像下面这样

ReactDOM.Render(    
// 在这里面写我们接下来的代码
, document.getElementById('id'))

路由匹配(<Route><Switch>)

我们可以在我们app的任何地方使用<Route>,一般我们使用它的pathcomponent属性,路由匹配的原理是比较<Route>path属性和当前的locationpathname,如果路由匹配该<Route>组件那么就展示它指定的组件,如果不给<Route>path属性,那么默认是会渲染它指定组件。我们常常可以看到,在一个页面中有很多<Route>组件,根据不同的路由来展示不同的部分,像下面这样。

import React from "react";import { BrowserRouter as Router, Route, Link } from "react-router-dom";const BasicExample = () => (  
  • Home
  • About
  • Topics

);const Home = () => (

Home

);const About = () => (

About

);export default BasicExample;

<Switch>是拿来对<Route>分组的,渲染的时候它会遍历内部的<Route>,直到匹配到第一个匹配的<Route>,一般在<Switch>最后加上一个所有路由不匹配时展示的页面,常见的就是404。例如上面的例子中我们可以改成这个样子

import React from "react";import { BrowserRouter as Router, Route, Link } from "react-router-dom";const BasicExample = () => (  
  • Home
  • About
  • Topics

);const Home = () => (

Home

);const About = () => (

About

);const Default= () => (

404

);export default BasicExample;

导航组件(<Link><Redirect><NavLink>)

<Link>就像<a/>标签,<NavLink>和前面的<Link>差不多, 都可以实现跳转页面,而<Redirect>就是实现重定向,只要匹配到它的from属性,就跳转到它的to属性指定的路由,常见的就是实现登陆的时候的重定向。

转载地址:http://esdzl.baihongyu.com/

你可能感兴趣的文章
sql convert and cast
查看>>
我的NodeJS一年之旅总结
查看>>
MyBatis-3.4.2-源码分析6:解析XML之objectWrapperFactoryElement & reflectorFactoryElement
查看>>
javascript与获取鼠标位置有关的属性
查看>>
Oracle database 11.2.0.3.0 升级至 11.2.0.3.14
查看>>
heartbeat理论介绍
查看>>
简单实现MVC模式
查看>>
什么版本的Maven与Java 6兼容?
查看>>
CCNA第3次课程
查看>>
Gson详解:Java对象与JSON相互转换的利器
查看>>
U-mail邮件系统又一getshell
查看>>
Spring Boot 入门
查看>>
路由交换调试(CCNA)零基础到专家 二
查看>>
我的友情链接
查看>>
.Net组件程序设计之序列化
查看>>
Web Api 的 路由机制
查看>>
Java编程规则
查看>>
java学习路线图-----java基础学习路线图(J2SE学习路线图)
查看>>
js对象属性两种调用bug
查看>>
spark启动简单脚本
查看>>