React路由中的Switch
switch功能
为了解决route
的唯一渲染,它是为了保证路由只渲染一个路径。
如果没有Switch组件,当一个path匹配到多个component时,会渲染出多个组件。一个路径在匹配到了对应的component之后,还会接着向下匹配 ,会大大的影响效率。
重点
通常情况下,path和component是一一对应的关系
将普通的Route组件包含在switch组件之中,当path匹配到一个component之后,将不会再向下继续匹配,提高了程序效率(单一匹配)
switch代码展示
import React, { Component } from 'react'
import { Switch, Route } from 'react-router-dom'
import About from './pages/About/About'
import Home from './pages/Home/Home'
import Header from './components/Header/index'
import MyNavLink from './components/MyNavLink/index'
export default class App extends Component {
render() {
return (
<div>
<div className="row">
<div className="col-xs-offset-2 col-xs-8">
<Header />
</div>
</div>
<div className="row">
<div className="col-xs-2 col-xs-offset-2">
<div className="list-group">
<MyNavLink to="/about" title="About" />
<MyNavLink to="/home" title="Home" />
</div>
</div>
<div className="col-xs-6">
<div className="panel">
<div className="panel-body">
<Switch>
<Route path="/about" component={About} />
<Route path="/home" component={Home} />
<Route path="/home" component={About} />
</Switch>
</div>
</div>
</div>
</div>
</div>
)
}
}