# React路由基础
## 三个常用的组件
> HashRouter/BrowserRouter Link Route
## BrowserRouter 或 HashRouter
> 开启路由世界的大门 路由的根地址,只能拥有一次
> 。一个是HashRouter另一个就是HistoryAPI路由
## Link
> 和vue的 link 是一样的 有to属性是跳转到哪个页面
> **exact**表示严格(路由导航定位会讲到)
## Route
属性
> path component exact(在路由严格模式会讲)
作用
> 1. 路由的匹配规则
> 2. 占位显示
# 案例
##
安装路由npm包
`npm install react-router-dom -S`
## 效果
![](https://box.kancloud.cn/c9eaa16089a0b44add37c2558345e48d_294x233.gif)
## 准备工作
1.我们要先准备三个页面其实就是三个组件首页,关于,新闻`src/pages/Home.js; src/pages/About.js; src/pages/News.js;`这三个组件。
2.在入口main.js中使用路由
```
import React from 'react'
import ReactDom from 'react-dom'
import {HashRouter, Route, BrowserRouter, Link} from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";
import News from "./pages/News";
ReactDom.render(
// 开启路由世界的大门 路由的根地址,只能拥有一次
<HashRouter>
{/*导航 Link Vue的用法很相似 注意这里是大写*/}
<Link to={"/home"}>首页</Link>
<Link to={"/about"}>关于</Link>
<Link to={"/news"}>新闻</Link>
<hr/>
{/*路由指向哪个页面 (组件)有两个意义 定义路由指向 在哪个位置显示页面*/}
<Route path={'/home'} component={Home}/>
<Route path={'/about'} component={About}/>
<Route path={'/news'} component={News}/>
</HashRouter>
, document.getElementById('root'))
```
# 总结
我们发现React 和Vue 是有不同的。在定义路由时Route 有两种作用**一是占位显示 二是定义路由**。其它思想和Vue差不太多。
- webpack复习
- React基础
- 前端三大主流框架对比
- React中几个核心的概念
- React基础语法
- React JSX语法
- React组件
- 普通组件
- 组件通信-父向子传递
- 组件拆成单个文件
- 面向对象复习
- Class组件基础
- Class组件的私有状态(私有数据)
- 案例:实现评论列表组件
- 组件样式管理
- 组件样式分离-样式表
- CSS模块化
- 生命周期
- React组件生命周期
- Counter组件来学习组件生命周期
- 生命周期总结
- 生命周期案例
- React评论列表
- React双向数据绑定
- React版todolist
- 其它提高(了解)
- 组件默认值和数据类型验证
- 绑定this并传参的三种方式
- 祖孙级和非父子组件传递数据(了解)
- React路由
- 路由基础
- 动态路由
- 路由严格模式
- 路由导航定位
- 路由重定向
- 路由懒加载
- WolfMovie项目
- 项目初始化
- AntDesign使用
- 其它相关了解