# 严格模式
## 改造案例
我们可以发现下面的入口文件中我们将**新闻中心**和**新闻1**都写出来了,那么会出现什么效果呢?
```
<HashRouter>
{/*导航 Link Vue的用法很相似 注意这里是大写*/}
<Link to={"/home"}>首页</Link>
<Link to={"/about"}>关于</Link>
<Link to={"/news"}>新闻中心</Link>
<Link to={"/news/1"}>新闻1</Link>
<hr/>
{/*路由指向哪个页面 (组件)有两个意义 定义路由指向 在哪个位置显示页面*/}
<Route path={'/home'} component={Home}/>
<Route path={'/about'} component={About}/>
<Route path={'/news'} component={NewsCenter}/>
<Route path={'/news/:id'} component={News}/>
</HashRouter>
```
## 问题呈现
![](https://box.kancloud.cn/087671607e5ea27e5c4837dffef9687d_508x229.gif)
我们发现在单击**新闻中心**时只显示**新闻中心**的页面,而单击**新闻1**时它显示的不仅仅是**新闻1**对应的页面而且还把**新闻中心**的页面也显示出来了。这是为什么?
这是因为路由的匹配规则决定的。在单击新闻中心时 路由只能匹配自己。
而在单击新闻1时,它的路由是news/1 而新闻中心的路由是news,把新闻中心的路由包含进去了,所以也匹配到了。那么就显示出来了。
## 解决问题
工作中我们一般是希望只显示自己对应的页面信息,其它的页面信息是不显示的,如何解决?这时我们要借助于严格路由来进行解决。
```
<Route path={'/news'} component={NewsCenter} exact/>
<Route path={'/news/:id'} component={News} exact/>
```
![](https://box.kancloud.cn/58a6c2f6a10048f61e33061c6e7dfbef_481x167.gif)
- webpack复习
- React基础
- 前端三大主流框架对比
- React中几个核心的概念
- React基础语法
- React JSX语法
- React组件
- 普通组件
- 组件通信-父向子传递
- 组件拆成单个文件
- 面向对象复习
- Class组件基础
- Class组件的私有状态(私有数据)
- 案例:实现评论列表组件
- 组件样式管理
- 组件样式分离-样式表
- CSS模块化
- 生命周期
- React组件生命周期
- Counter组件来学习组件生命周期
- 生命周期总结
- 生命周期案例
- React评论列表
- React双向数据绑定
- React版todolist
- 其它提高(了解)
- 组件默认值和数据类型验证
- 绑定this并传参的三种方式
- 祖孙级和非父子组件传递数据(了解)
- React路由
- 路由基础
- 动态路由
- 路由严格模式
- 路由导航定位
- 路由重定向
- 路由懒加载
- WolfMovie项目
- 项目初始化
- AntDesign使用
- 其它相关了解