reactjs - 混淆react-router-dom和react-router-redux

标签 reactjs react-router react-redux react-router-redux react-router-dom

我是 React 和 Redux 的新手,我从 React-router-dom 开始了我的项目,现在我希望在组合中添加 Redux。

我应该继续使用react-router-dom还是只安装react-router-redux?或两者? 路线组件的工作原理是否相同?我有点困惑,react-router-dom 的用途是什么?

我是否将所有 Link 组件切换到向存储分派(dispatch)操作的 a 元素?

感谢您的帮助。

最佳答案

一般使用Redux时,推荐使用react-router-redux,它封装了react-router。

只有当你初始化应用程序时,你才应该将一些东西从react-router传递到Redux,它们是RouterbrowserHistory

在 app.js 中:

import { Router, browserHistory } from 'react-router';
import { syncHistoryWithStore } from 'react-router-redux';

const initialState = {};
const store = configureStore(initialState, browserHistory);

const history = syncHistoryWithStore(browserHistory, store);

const render = () => {
  ReactDOM.render(
    <Provider store={store}>
        <Router
          history={history}
          routes={rootRoute}
        />
    </Provider>,
    document.getElementById('app')
  );
};

您提供 React 的 Router 元素作为 Redux Provider 元素的子元素,并且还向 Router 元素提供 React 的 browserHistory 的 Redux 包装器。

在项目的其余部分中,您只需要使用react-router-redux,而不是直接调用React。

react-router-dom BTW只是React 4中的另一层简化,它封装了react-router,但如果你的项目架构是Redux,那么你需要按照Redux的规则工作,因此只使用react- router-redux 以便在每个操作中传递存储(上述初始化除外)。

关于reactjs - 混淆react-router-dom和react-router-redux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46262406/

相关文章:

javascript - ReactJS Chatkit 未定义

javascript - ReactJS - 谁能解释一下这个状态是如何以及为什么被改变的?

html - 减少表中类/函数被调用的次数

javascript - 在 kadira :flow-router for meteor 上使用 react-router 有什么好处

javascript - 如何在不使用任何事件处理程序的情况下重新加载 react 组件?

javascript - 如何在 React 中为 react-helmet 做 meta 标签和标题单元测试?

reactjs - 在 React 中使用 "npm run build"后路由未加载

reactjs - 使用 enzyme 在 react 测试中找到渲染子组件的数量?

javascript - redux mapDispatchToProps 不更新状态

reactjs - React redux-beacon 跟踪链接点击分析