当前位置:首页 > 日记 > 正文

react router 4.0以上的路由应用详解

react router 4.0以上的路由应用详解

本文介绍了react router 4.0以上的路由应用,分享给大家,具体如下:

在4.0以下的react router中,嵌套的路由可以放在一个router标签中,形式如下,嵌套的路由也直接放在一起。

<Route component={App}>  <Route path="groups" components={Groups} />  <Route path="users" components={Users}>   <Route path="users/:userId" component={Profile} />  </Route></Route>

但是在4.0以后,嵌套的路由与之前的就完全不同了,需要单独放置在嵌套的根component中去处理路由,否则会一直有warning:

You should not use <Route component> and <Route children> in the same route

正确形式如下

<Route component={App}>  <Route path="groups" components={Groups} />  <Route path="users" components={Users}>   //<Route path="users/:userId" component={Profile} />  </Route></Route>

上面将嵌套的路由注释掉

const Users = ({ match }) => ( <div>  <h2>Topics</h2>  <Route path={`${match.url}/:userId`} component={Profile}/> </div>) 

上面在需要嵌套路由的component中添加新的路由

一个完整的嵌套路由的例子如下

说明及注意事项

1.以下代码采用ES6格式

2.react-router-dom版本为4.1.1

3.请注意使用诸如HashRouter之类的history,否则一直会有warning,不能渲染

import React, { Component } from 'react';import ReactDOM from 'react-dom';// import { Router, Route, Link, Switch } from 'react-router';import { HashRouter, Route, Link, Switch} from 'react-router-dom';class App extends Component { render() {  return (   <div>    <h1>App</h1>    <ul>     <li><Link to="/">Home</Link></li>     <li><Link to="/about">About</Link></li>     <li><Link to="/inbox">Inbox</Link></li>    </ul>    {this.props.children}   </div>  ); }}const About = () => ( <div>  <h3>About</h3> </div>)const Home = () => ( <div>  <h3>Home</h3> </div>)const Message = ({ match }) => ( <div>  <h3>new messages</h3>  <h3>{match.params.id}</h3> </div>)const Inbox = ({ match }) => ( <div>  <h2>Topics</h2>  <Route path={`${match.url}/messages/:id`} component={Message}/> </div>) ReactDOM.render( (<HashRouter>  <App>    <Route exact path="/" component={Home} />    <Route path="/about" component={About} />    <Route path="/inbox" component={Inbox} />  </App> </HashRouter>), document.getElementById('root'));

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关文章

利用js查找数组中指定元素并返回该

利用js查找数组中指定元素并返回该

元素,查找,索引,示例,组中,前言这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧。示例代码//在数组中查找所有出现的x,并返回一个包含匹…

PPT2007中怎样设置若隐若现的半透

PPT2007中怎样设置若隐若现的半透

设置,半透明,若隐若现,背景,效果,  半透明背景效果与水印效果大同小异,给我们一种若隐若现的朦胧美。此效果,不仅可以让文件显得更加的有创意,而且在PPT中还可以为幻灯片增色。以下是小编为您带来的关于PPT2007中设置若隐若现的半透明背景效…

利用Angular+Angular-Ui实现分页(代

利用Angular+Angular-Ui实现分页(代

分页,代码,简单,电脑软件,Angular,今天我们来看看一种只实现分页没有查询的例子吧,先看效果:采用了Angular-UI中的分页组件,关于Angular-UI如何使用请移步这里https://angular-ui.github.io/bootstrap/中的bootstrap章节(其中ui-router等我也建…

微信禁止下拉查看URL的处理方法

微信禁止下拉查看URL的处理方法

处理方法,电脑软件,URL,场景:微信下拉时可以查看到URL,本身是微信的一种安全策略之一,也是一种用户交互友好的体验;效果原理:微信下拉弹性效果其实是浏览器本身的一种特性,重点就是scroll值的一种体现;处理策略:1、直接禁止mobile端的touchmove事件…

wps2016如何设置文档不同页眉

wps2016如何设置文档不同页眉

页眉,文档,方法,设置,如何设置,  在wps编辑文档时,可能由于各章节的标题不同,所以其要求页眉的内容也不同,那么,我们怎样去设置不同章节的页眉呢?下面给大家分享wps2016设置不同页眉的方法,欢迎大家来到学习。wps2016设置不同页眉的方法如图所…

JS简单实现自定义右键菜单实例

JS简单实现自定义右键菜单实例

右键菜单,简单实现,自定义,实例,电脑软件,RT,一个简单的例子,仅仅讲述原理 复制代码 代码如下:<div id="menu" style="width: 0;height: 0;background: cadetblue;position: absolute"></menu>假设我要把上面这个div设置为右键菜单,先随意…

excel做趋势图的方法图解教程

excel做趋势图的方法图解教程

趋势,方法,教程,绘制,电脑软件,  咱们学理工科的学生经常需要处理数据,并作出相应的趋势图。如何作图呢,下面小编来为大家详细介绍做趋势图的图解教程,希望对你有帮助!Excel做趋势图的方法首先,选中数据区域,连名称一起选上。选择插入&mdash;散…

对word2013文档进行加密的两种方法

对word2013文档进行加密的两种方法

文档,方法,加密,两种,电脑软件,  一些情况下需要对office文档进行保护设置,加密就是其中一种很有效的方法,其他保护文档的方法还有限制编辑、限制访问和添加数字签名等。那么下面就由小编给大家分享下对word2013文档进行设置密码的技巧,希望…

怎么在word中制作文档封面在word中

怎么在word中制作文档封面在word中

文档,步骤,方法,封面,电脑软件,  一篇优秀的文档除了内容具体详细外,&ldquo;精致美观&rdquo;也是必不可少的要求之一。一份美观的文档往往能让你在领导心中的印象分提高不少!下面下编教你怎么在word中制作文档封面。在word中制作文档封面…

Vue之Watcher源码解析(1)

Vue之Watcher源码解析(1)

源码,电脑软件,Vue,Watcher,上一节最后再次调用了mount函数,我发现竟然跳到了7000多行的那个函数,之前我还说因为声明早了被覆盖,看来我错了!就是这个函数:// Line-7531 Vue$3.prototype.$mount = function(el, hydrating) { el = el && inB…

学好js,这些js函数概念一定要知道【

学好js,这些js函数概念一定要知道【

推荐,函数,电脑软件,js,函数创建方式 1.声明方式 例如:function consoleTip (){ console.log("tip!"); } 2.表达式方式 例如:var consoleTip = function(){ console.log("tip!"); }两种方式的区别: 1.表达式方式适合用来定义只使用一次的…

详解web存储中的storage

详解web存储中的storage

详解,电脑软件,web,storage,web存储之storage 近期工作中使用的数据存储比较多,在工作之余写一篇关于存储的博客来加深自己的印象,希望大家多多批评指正。一、 web存储分为两种,sessionStorage、localStorage;二、 web存储的特性;1.设置…