之前一直都是从事vue开发,今天开始我学习react的旅程。总结一下我遇到的问题,希望给大家一个参考。
1.React 版本16以后,React.createClass({})创建组件的方式失效
今天看网上的react创建组件的方式,一直报错,原来在react最新版本已经不支持这种创建组件的方式了,改成了这种。
export default class Header extends Component{
constructor(props){
super(props)
}
render(){
return (
<div>
我是头部
</div>
)
}
}
2.react路由,我用的是react-router-dom,分为两种模式一个是HashRouter和BrowserRouter
在引入HashRouter的时候首字母没有大写导致引入失败
看网上用的是react-router 3.2的版本
import React from 'react'
import { Router, Route, IndexRoute, hashHistory/* , Redirect */ } from 'react-router'
import * as base from '@pages/base' // 基础
export default () => (
<Router history={hashHistory}>
<Route path="/" component={base.app} >
<IndexRoute component={base.example} />
</Router>
)
我用的是最新5.0的版本,解决方法如下
import React from "react";
import {
HashRouter as Router,
Switch,
Route,
Link,
useParams,
useRouteMatch,
Redirect,
useLocation
} from "react-router-dom";
export default () => (
<Router>
<Route path="/" component={App} onEnter={isLogin}></Route>
<Route path="/login" component={Login} />
</Router>
)
希望我的答案能给和我遇到同样问题的人带来帮助。