RecatRouter4的使用事项
由于博主最近在学习React的相关知识,遇到版本上的一些坑(教学课程版本跟我现在安装的版本不一样),加之我查找了很多这方面的博客,发现时间都有点久远。所以特此来跟大家分享一下我的踩坑经历。
我现在使用的是 4.0,这个版本的路由是跟之前的用法有着比较大的区别的,React Router v4 是一个完整的重写。
下面就让我来跟大家介绍一下我踩过的坑:
1.使用:
页面中导入应用:
import 'BrowserRouter,Route,Switch' from 'react-router-dom'
<BrowserRouter>
<Switch>
<Route exact path="/" component={组件名}></Route>
<Route exact path="/" component={组件名}></Route>
</Switch>
</BrowserRouter>
注意:
1.BrowserRouter 只能有一个子元素,你可以使用<Switch></Switch>,
或者使用<div></div>将子元素包裹起来。不然会报错。
2.Router 4以上 还需要在BrowserRouter 中加元素 exact严格限制
path的匹配,不然的话,如path="/",Router将会把所有带'/'的
路径匹配,然后报错。
3.webpack.config.js中加入一下代码,可以让浏览器抛出的异常更加详细
devServer: {
disableHostCheck: true,
historyApiFallback:true
},
4.Router 4以上接收页面传递的参数时的变化,
之前:
this.props.params.参数名
之后:
this.props.match.params.参数名
以上就是我学习遇到的一些关于版本差异的坑,但是v3和v4的变迁不止我介绍的这几种,需要了解更多的可以去官网了解更多关于Router4的用法。
这是我的心得,可能有哪些疏漏的地方。希望大神可以多多指点指点~嘻嘻