React路由-基础篇
React-Router-DOM
安装
-npmjs找到react-router-dom
-yarn add react-router-dom
基本使用方法
1.创建一个文件夹react-router-dom,创建一个index.js文件
2.引入BrowserRouter as Router(可以用ES6的as,给BrowserRouter起个别名),要注意,BrowserRouter是基于h5(浏览器)的router,它不带#,但是存在的问题是一刷新,后端没有匹配的路由就会挂掉,所以需要后传那边做一个跳转
3.Router就是定义路由的一个根组件,Route就是引入的react-router-dom,要注意Router里面只能有一个子节点,所以我们可以用Fragment将所有的Route包裹起来,其实react路由很简单也很语义化:
<Route path="/food" component={Food} /> //这样你就定义好了一个路由,当你路由为/about的时候就会跳到你的About组件
4.默认React的路由时有包容性,也就是比如说,/food/3和/food会同时匹配;若要实现路由的排他性,用Switch标签作为唯一的子节点;Switch标签有一个特点,在这里面的路由会从上往下进行匹配,一旦有一个匹配成功就不会再往下面匹配了,或者也可以在跳转路由的标签里写上一个exact,也可以实现精准匹配:
Switch写法:
<Switch>
<Route exact path="/" component={Food} />
<Route path="/food" component={Food} />
<Route path="/wiki" component={Wiki} />
<Route path="/profile" component={Profile} />
<Route exact component={Page404} />
</Switch>
exact写法:
<Route exact path="/" component={Food} />
5.你可以写一个,这个路由中不定义路由,也就是说这个路由将会作为如果你输入的路由不存在的时候走的组件
<Route exact component={Page404} />
6.引入Link标签,在这里就相当于a标签了,可以to到我们想跳转的路由
<Link to="/profile">profile</Link>
<Link to="/food">food</Link>
<Link to="/wiki">wiki</Link>
你会发现在浏览器上已经帮我们解析成a标签了
7.路由重定向,当路由匹配了/后会跳转到/food路由,注意在这里要加上exact,意为精准匹配
<Redirect from="/" exact to="/food" />
8.路由高亮,将Link标签改成NavLink标签(实现路由高亮的专用标签),然后写上activeClass="active"就可以实现路由的高亮效果
<li>
<NavLink activeClass="active" to="/profile">profile</NavLink>
</li>
<li>
<NavLink activeClass="active" to="/food">food</NavLink>
</li>
<li>
<NavLink activeClass="active" to="/wiki">wiki</NavLink>
</li>
9.可以在路由组件中console.log(this.props),你会发现有很多有用的东西
class Profile extends Component{
render() {
console.log(this.props)
return (
<div>Profile</div>
)
}
}
这篇是关于React路由的基础知识,希望能对想学习React的同学有所帮助,后续会给大家发一个React路由进阶
React路由-基础篇的更多相关文章
- 诱人的 react 视频教程-基础篇(14 个视频)
诱人的 react 视频教程-基础篇(14 个视频) 诱人的 react 视频教程 - 基础篇 #1 介绍「07:25」 诱人的 react 视频教程 - 基础篇 #2 create-react-ap ...
- 【angularjs】【学习心得】路由基础篇
原文:http://www.imooc.com/wenda/detail/236998 AngularJS自带有路由模块ngRoute,但是有经验的老师都推荐我们使用功能更完善更强大的ui-route ...
- React路由-进阶篇
路由进阶 1.多级路由,和之前的思想一样,在子路由里面继续写Route,继续挂载组件,就可以实现多级路由 比如这样:class Food extends Component{ render() { r ...
- React入门----基础篇
React 背景介绍 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做 ...
- 七天接手react项目 系列 —— react 路由
其他章节请看: 七天接手react项目 系列 react 路由 本篇首先讲解路由原理,接着以一个基础路由示例为起点讲述路由最基础的知识,然后讲解嵌套路由.路由传参,最后讲解路由组件和一般组件的区别,以 ...
- 从0到1用react+antd+redux搭建一个开箱即用的企业级管理后台系列(基础篇)
背景 最近因为要做一个新的管理后台项目,新公司大部分是用vue写的,技术栈这块也是想切到react上面来,所以,这次从0到1重新搭建一个react项目架子,需要考虑的东西的很多,包括目录结构.代码 ...
- node基础篇二:模块、路由、全局变量课堂(持续)
今天继续更新node基础篇,今天主要内容是模块.路由和全局变量. 模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例 ...
- Hybrid APP基础篇(二)->Native、Hybrid、React Native、Web App方案的分析比较
说明 Native.Hybrid.React.Web App方案的分析比较 目录 前言 参考来源 前置技术要求 楔子 几种APP开发模式 概述 Native App Web App Hybrid Ap ...
- react router @4 和 vue路由 详解(一)vue路由基础和使用
完整版:https://www.cnblogs.com/yangyangxxb/p/10066650.html 1.vue路由基础和使用 a.大概目录 我这里建了一个router文件夹,文件夹下有in ...
随机推荐
- CentOS7安装Nginx实现API网关
参考 http://nginx.org/ http://nginx.org/en/linux_packages.html#stable https://www.npmjs.com/package/js ...
- vue将数据绑定到属性中
*必须使用[] <tr v-for="(p,index) in prodects"> @*v-bind:class="styleType(index)&quo ...
- ACM-单调队列用于DP优化
http://www.cnblogs.com/ka200812/archive/2012/07/11/2585950.html 待续
- JQ单双引号转义
var temp = "${row.address_province}"; alert(temp);——————即变量temp alert("\'"+temp+ ...
- (十)JavaScript之【DOM定义】
DOM定义Document Object Model 文档对象模型 是干什么的?改变 HTML 元素的内容 (innerHTML)改变 HTML 元素的样式 (CSS)改变 HTML 元素的属性对 H ...
- ASP.NET MVC 音乐商店 - 2.控制器
在典型的 Web 应用中,用户请求的 URL 地址通常映射到保存在网站中的文件上,例如,当用户请求 /Products.aspx 的时候,或者 /Products.php 的时候,很可能是在通过处理 ...
- adb使用wifi无线连接调试Android设备
先上官方原文: Wireless usage adb is usually used over USB. However, it is also possible to use over Wi-Fi, ...
- python的元组
Python的元组和列表很相似,只是元组一旦定义就无法修改,比如定义一个学生的元组: names = ('alex','jack') print(names)#('alex', 'jack') pri ...
- Python爬虫教程——入门五之URLError异常处理
大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网 连接不到特定的 ...
- SharePoint 2010 究竟需要占用多少服务器资源?
SharePoint 安装目录(即SharePoint Root)大约 300M 磁盘空间. SharePoint Config 数据库,60M. Admin Center 数据库,100M. 默认安 ...