react中react-redux和react-router4.*的配合使用


在一个react的项目中,目前来说项目过大,数据交互多的情况下选择使用reduxrouter是很常见的。下面我就用代码的展现形式,来举例:

我们知道在react-redux的实践中,最外层就是render函数的使用:

import React from 'react';
import {render} from 'react-dom';
import App from './App';
//这里使用render渲染
render(
  <App/>,
  document.getElementById('root')
);

当我们使用redux的时候,就会先创建一个store,然后使用react-redux提供的Provider作为父组件包裹App:

render(
  <Provider  store={store}>
    <App/>
  </Provider>,
  document.getElementById('root')
);

当搭配router后,这里仍然不需要要改变的。我们只需要将router的配置,放入App里面的需要的组件里面:
routerMap.js:

import React,{Component} from 'react';
import {
  BrowserRouter as Router,
  Route,
  Switch
} from 'react-router-dom';
import Home from '../containers/Home';
import User from '../containers/User';
import Search from '../containers/Search';
import Detail from '../containers/Detail';
import City from '../containers/City';
import NotFound from '../containers/404Page';
class App extends Component{
  constructor(props, context){
    super(props, context);
    this.shouldComponentUpdate = PureRenderMixin.shouldComponentUpdate;
  }
  render(){
    return (
      <Router>
        <div>
          {/**
           * 这里可以公共的样式,比如 头部, 尾部, 等.
           */}
           header
          {/*结合Switch组件可以匹配到都匹配不到的路劲,404等...*/}
          <Switch>
            <Route path='/' exact component={Home}/>
            <Route path='/user'  component={User}/>
            <Route path='/search'  component={Search}/>
            <Route path='/detail'  component={Detail}/>
            <Route path='/city'  component={City}/>
            <Route component={NotFound}/>
          </Switch>
          footer
        </div>
      </Router>
    );
  }
}
export default App;

这时候后,在最外层:

import React from 'react';
import {render} from 'react-dom';
import App from './routerMap';
//这里使用render渲染
render(
  <Provider  store={store}>
    <App/>
  </Provider>,
  document.getElementById('root')
);

其实最后router和redux的使用是互不影响的,一切正常使用就好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值