< react router> (路由):

思维导图:

Atrial   文件夹下的index.js 文件内容:

 import React, { Component } from 'react'
import{
Link,
}from 'react-router-dom'
export default class Atrial extends Component {
render() {
return (
<div>
<Link to='atrial/1'>文章一:</Link>
<Link to='atrial/2'>文章二:</Link>
</div>
)
}
}

还有一种传递方式叫隐士传参:

 import React, { Component } from 'react'
import{
Link,
}from 'react-router-dom'
export default class Atrial extends Component {
render() {
return (
<div>
<Link to='atrial/1'>文章一:</Link>
<Link to={{
pathname:'/atrial/2',
state:{
from:'artial'
}
}}>文章二:</Link>
</div>
)
}
}
---------------------------------------------------
和上面的一样,只不过这里用到了隐士传参

Atrial 文件夹下的 ArtialDetall .js 的内容:

 import React, { Component } from 'react'

 export default class ArtialDetall extends Component {
render() { console.log(this.props)
return (
<div>
文章详情{this.props.match.params.id}
</div>
)
}
}

Home 文件夹下的 index.js 内容:

 import React, { Component } from 'react'

 export default class Home extends Component {
render() {
return (
<div>
<h3>柚子小哥哥!</h3>
</div>
)
}
}

Users 文件夹下的 index.js 内容:

 import React, { Component } from 'react'

 export default class Users extends Component {
render() {
return (
<div>
<h3>橙子小姐姐!</h3>
</div>
)
}
}

NotFount 文件夹下的 index.js 的内容: (这个文件夹代表的是404)

 import React, { Component } from 'react'

 export default class NotFound extends Component {
render() {
return (
<div>
404
</div>
)
}
}

Views 文件夹下的 index.js 的内容:(把Views 文件夹下的组件抛出去)

 export { default as Home } from './Home'
export { default as Atrial } from './Atrial'
export { default as Users } from './Users'
export { default as ArtialDetall } from './Atrial/ArtialDetall'
export { default as NotFound } from './NotFound'

App.js 的内容:

 /* eslint-disable no-unused-vars */
import React, { Component } from 'react'
import {Route, NavLink as Link,Redirect,Switch } from 'react-router-dom'
import {
Home,
Users,
Atrial,
ArtialDetall,
NotFound,
} from './Views' export default class App extends Component {
render() {
console.log(this.props)
return (
<div>
<ul>
<li><Link to='/home'>首页</Link></li>
<li><Link to='/users'>新闻</Link></li>
<li><Link to='/atrial'> 娱乐</Link></li>
</ul>
<Switch>
<Route path='/home' render={()=>{return <Home/>}}/>
<Route component={Users} path ='/users'/>
<Route component={Atrial} path='/atrial' exact/>
<Route component={ArtialDetall} path='/atrial/:id'/>
<Route component={NotFound} path='/404'/>
<Redirect to='/home' from='/' exact />
<Redirect to='/404'/>
</Switch>
</div>
)
}
}

index.js 的内容:

 import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter as Router , Route} from 'react-router-dom'
import App from './App'; ReactDOM.render(
<Router>
<Route component={App} />
</Router>,
document.getElementById('root'));

总结:

安装 router 的指令是:
npm i react-router-dom --save
## router 用到组件有:
* Router
* Route (里面参数有component / path='属性'), (可以嵌套!)
* BrowserRouter (没有#)
* HashRouter (有# )
* Link (相当与 a 标签)还有一个to
* NavLink (就加一个 class="active')
* Redirect (作用:跳转到一个路由上面!) to
* exact (完全匹配)
## component 和 render 的区别:
1. component 要优先于 render
2. render 可以传递参数
3. render 还可以做一些全线认证

## 发送数据的方式有:
1. ajax:
2. img:(以下是简单的例子:)
const img = new Image()
img.src='http://www.domainname.com/button-01.gif?x=1'
3. sendBeacon (兼容性不好,但成功率高。)
 
(这里的 配置的 404 组件 只是在这里简单的配置的以下)
 
 
 
 

< react router>: (路由)的更多相关文章

  1. React初识整理(四)--React Router(路由)

    官网:https://reacttraining.com/react-router 后端路由:主要做路径和方法的匹配,从而从后台获取相应的数据 前端路由:用于路径和组件的匹配,从而实现组件的切换. 如 ...

  2. react router路由传参

    今天,我们要讨论的是react router中Link传值的三种表现形式.分别为通过通配符传参.query传参和state传参. ps:进入正题前,先说明一下,以下的所有内容都是在react-rout ...

  3. 【react router路由】<Router> <Siwtch> <Route>标签

    博客 https://www.jianshu.com/p/ed5e56994f13?from=timeline 文档 http://react-guide.github.io/react-router ...

  4. react ---- Router路由的使用和页面跳转

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 首先,我们 ...

  5. React Router路由传参方式总结

    首先我们要知道一个前提,路由传递的参数我们可以通过props里面的属性来获取.只要组件是被<Router>组件的<component>定义和指派的,这个组件自然就有了props ...

  6. react router 4.0以上的路由应用

    thead>tr>th{padding:8px;line-height:1.4285714;border-top:1px solid #ddd}.table>thead>tr& ...

  7. react router @4 和 vue路由 详解(七)react路由守卫

    完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 12.react路由守卫? a.在之前的版本中,React Router 也提供了类似的 ...

  8. react router @4 和 vue路由 详解(全)

    react router @4 和 vue路由 本文大纲: 1.vue路由基础和使用 2.react-router @4用法 3.什么是包容性路由?什么是排他性路由? 4.react路由有两个重要的属 ...

  9. React Router 4.0 实现路由守卫

    在使用 Vue 或者 Angular 的时候,框架提供了路由守卫功能,用来在进入某个路有前进行一些校验工作,如果校验失败,就跳转到 404 或者登陆页面,比如 Vue 中的 beforeEnter 函 ...

随机推荐

  1. debug PHP程序(xdebug、IntelliJ IDEA)

    之前写PHP程序的都是echo调试,今天感觉太麻烦了就想起研究一下IntelliJ IDEA如何调试PHP程序. 从网上查找了很多资料,大部分都提到在IDE里开启服务,一下就懵了,怎么启这么多服务呢. ...

  2. SRAM电路工作原理

    近年来,片上存储器发展迅速,根据国际半导体技术路线图(ITRS),随着超深亚微米制造工艺的成熟和纳米工艺的发展,晶体管特征尺寸进一步缩小,半导体存储器在片上存储器上所占的面积比例也越来越高.接下来宇芯 ...

  3. 小谢第8问:ui框架的css样式如何更改

    目前有三种方法, 1.使用scss,增加样式覆盖,但是此种方法要求css的className需要与框架内的元素相一致,因此修改时候需要特别注意,一个父级的不同就可能修改失败 2.deep穿透,这种方法 ...

  4. Chisel3 - util - Arbiter

    https://mp.weixin.qq.com/s/7Y23gV6yPvtmvKHTo2I8mw   基于ReadyValid接口实现的多入单出仲裁器.   参考链接: https://github ...

  5. JavaSE(三) 变量与运算符

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 2 变量的使用 2.1按数据类型分类 ​ 整型 : byte(1字节 = 8bit) short(2字节 ...

  6. Java实现 LeetCode 763 划分字母区间(暴力)

    763. 划分字母区间 字符串 S 由小写字母组成.我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段.返回一个表示每个字符串片段的长度的列表. 示例 1: 输入: S = & ...

  7. Java实现 LeetCode 731 我的日程安排表 II(二叉树)

    731. 我的日程安排表 II 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排. MyCalendar 有一个 book(int ...

  8. Java实现 LeetCode 1162 地图分析(可以暴力或者动态规划的BFS)

    1162. 地图分析 你现在手里有一份大小为 N x N 的『地图』(网格) grid,上面的每个『区域』(单元格)都用 0 和 1 标记好了.其中 0 代表海洋,1 代表陆地,你知道距离陆地区域最远 ...

  9. Java中输入时IO包与Scanner的区别

    最常用的一个IO控制台输入的 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream ...

  10. Java实现 LeetCode 30 串联所有单词的子串

    30. 串联所有单词的子串 给定一个字符串 s 和一些长度相同的单词 words.找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置. 注意子串要与 words 中的单词完全匹配, ...