react全家桶实现招聘app-路由实现(二)

297 阅读1分钟

3 引入路由

3.1 下载路由包: react-router-dom

npm install --save react-router-dom

3.1.2 路由组件: containers/register/register.jsx

/*

用户注册的路由组件

*/

import React, {Component} from 'react'

export default class Register extends Component {

render() {

return (

<div>Register</div>
)
}
}

3.1.3 路由组件: containers/login/login.jsx

/*

用户登陆的路由组件

*/

import React, {Component} from 'react'


export default class Login extends Component {

render () {

return (

<div>login</div>

)

}

}

3.1.4路由组件: containers/main/main.jsx

/*

应用主界面路由组件

*/

import React, {Component} from 'react'


export default class Main extends Component {

render() {

return (

<div>Main</div>

)

}

}

3.1.5 映射路由 index.js

/**
 * 入口
 */

import React from 'react'
import ReactDOM from 'react-dom'
import { HashRouter, Switch, Route} from 'react-router-dom'
import Login from './containers/login/login.js'
import Register from './containers/register/register.js'
import Main from './containers/main/main.js'

ReactDOM.render(

  <HashRouter>
    <Switch>
      <Route path='/login' component={Login}/>
      <Route path='/register' component={Register}/>
      <Route  component={Main}/>
      
      
    </Switch>
  </HashRouter>
  ,document.getElementById('root')

)

3.1.6 引入redux

npm install --save redux@3.7.2 react-redux redux-thunk

npm install --save-dev redux-devtools-extension

3.1.7

redux/reducers.js
/*

包含多个用于生成新的 state 的 reducer 函数的模块

*/

import {combineReducers} from 'redux'

function xxx(state = 0, action) {

return state
}

function yyy(state = 0, action) {

return state

}

//返回合并后的 reducer 函数 export default combineReducers({

xxx, yyy
})

redux/store.js

/*

redux 最核心的 store 对象模块

*/

import {createStore, applyMiddleware} from 'redux' import thunk from 'redux-thunk'
import {composeWithDevTools} from 'redux-devtools-extension' import reducers from './reducers'

export default createStore(reducers, composeWithDevTools(applyMiddleware(thunk)))

入口index.js

/**
 * 入口
 */

import React from 'react'
import ReactDOM from 'react-dom'
import { HashRouter, Switch, Route} from 'react-router-dom'
import Login from './containers/login/login.js'
import Register from './containers/register/register.js'
import Main from './containers/main/main.js'
import store from './redux/store'
import {Provider} from  'react-redux'

ReactDOM.render(
  <Provider store={store}>
    <HashRouter>
      <Switch>
        <Route path='/login' component={Login}/>
        <Route path='/register' component={Register}/>
        <Route  component={Main}/>
      </Switch>
      </HashRouter>
  </Provider>
  
  ,document.getElementById('root')

)

最终实现的路由

结语 后续更新中...

完整项目地址:github.com/hongzhengzh…