< 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. 2/3/4G网络架构

    1通讯网络演进 1.1 概念名词 LTE=Long Term Evolution=长期演进, 是3GPP制定的高数据率.低时延.面向分组域优化的新一代宽带移动通信标准项目. E-UTRAN 无线接入网 ...

  2. Network Motif 文献调研

    Network Motif 文献调研 概述:Network motifs,可以认为是网络中频繁出现的子图模式,是复杂网络的"构建块".有两篇发表在science上的论文给出moti ...

  3. spark学习笔记总结

    Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高 ...

  4. parrot os的一些坑

    burpsuite 破解版的运行环境需要jdk8,jdk11无法运行 选择jdk环境 update-alternatives --config java 截图工具 sudo apt install f ...

  5. docker出现相同的image条目的删除办法

    一.问题:在测试docker安装的prometheus系统时,由于异常操作,使用docker image ls出现了两条一模一样的条目,如下: [root@ELK prometheus]# docke ...

  6. 移动端border:1px问题解决方案

    了解设备像素和css像素的因该知道,通常我们在写移动端时,是按照设计稿标注的像素除以设备的DPR来写真实的像素, 比如在iPhone6上,我们写的20px字体世界上在视觉效应上有20px; 所以当我们 ...

  7. Java实现 LeetCode 147 对链表进行插入排序

    147. 对链表进行插入排序 对链表进行插入排序. 插入排序的动画演示如上.从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示). 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将 ...

  8. java实现 蓝桥杯 算法提高 盾神与条状项链

    问题描述 有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链.当他准备把项链首尾相接的时候,土方进来了. ...

  9. java实现圆周率

    我国古代数学家对圆周率方面的研究工作,成绩是突出的.三国时期的刘徽.南北朝时期的祖冲之都在这个领域取 得过辉煌战绩. 有了计算机,圆周率的计算变得十分容易了.如今,人们创造了上百种方法求π的值.其中比 ...

  10. 面试三轮我倒在了一道sql题上——sql性能优化

    一.前言 最近小农在找工作,因为今年疫情的特殊原因,导致工作不是特别好找,所以一旦有面试电话,如果可以,都会去试一试,刚好接到一个面试邀请,感觉公司还不错,于是就确定了面试时间,准备了一下就去面试了. ...