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 ...
随机推荐
- 用 JS 做一个数独游戏(二)
用 JS 做一个数独游戏(二) 在 上一篇博客 中,我们通过 Node 运行了我们的 JavaScript 代码,在控制台中打印出来生成好的数独终盘.为了让我们的数独游戏能有良好的体验,这篇博客将会为 ...
- css3重点回顾字体
1.字体 免费字体下载https://cn.ffonts.net/
- vue将数据绑定到属性中
*必须使用[] <tr v-for="(p,index) in prodects"> @*v-bind:class="styleType(index)&quo ...
- 单元测试模拟request后台
编写测试单元 @RunWith(SpringJUnit4ClassRunner.class) 让测试运行于Spring测试环境 @WebAppConfiguration是一个类级别的注释,用于声明Ap ...
- 2602 最短路径问题Dihstra算法
题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间.其中的一些点之间有连线.若有连线,则表示可从一个点到达另一个点,即两点间有通路,通 ...
- Javascript基础--运算符与表达式
一.运算符 1.运算符分类: 按功能:算术运算符:+.-.*./.%.++.-- 例:12+12-11+5*6+20/5+5%2+(5%-2)+(-5++2)+(a++)+(++a)+(--a)+(a ...
- CKEditor插件开发
以前做过一个教育项目,是有关在线考试的.其中对编辑器CKEditor做了扩充,增加了插入客观题.主观题.选择题和判断题的功能.这里记述下CKEditor插件开发的过程. CKEditor以前叫FCKE ...
- ASP.NET写入和读取xml文件
xml是一种可扩展标记语言,在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等.它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 ...
- python JSON性能测试与simplejson对比
简单测试了一下,如果用JSON,也就是python2.6以上自带的json处理库,效率还算可以: 1K的数据,2.9GHz的CPU,单核下每秒能dump:36898次.大约是pyamf的5倍.但数据量 ...
- Node.js-sublime text3 配置node.js(ERROR: The process "node.exe" not found.)
默认已经安装好sublime.node和npm 1.sublime的node.js插件下载 由于在package control上经常下载失败,所以这里直接从GitHub上进行下载! GitHub下载 ...