人。当我查看redux-router的文档时,我只是无法理解为什么需要它?
以下是文档试图解释的内容:
React Router是一个很棒的路由库,但其中一个缺点是 它抽象出一个非常关键的应用程序状态 - 目前的路线!这种抽象对于路由匹配非常有用 渲染,但用于与路由器交互的API 1)触发 过渡和2)对组件内的状态变化做出反应 生命周期留下了一些不可取的东西。
事实证明我们已经用Flux(和Redux)解决了这些问题: 我们使用动作创建器来触发状态更改,我们使用 订阅状态变化的高阶组件。
此库允许您将路由器状态保留在Redux中 商店。因此,获取当前路径名,查询和参数非常简单 选择申请状态的任何其他部分。
据我所知,它试图说redux路由器可以将路由器状态保存在redux存储区内,这样我们就可以更方便地获取路由信息。
但在react-router中,我也很容易做到。 就像path =“messages /:id”一样,我可以使用this.props.params.id来获取参数。
有人可以解释一下redux-router带来什么好处吗?
答案 0 :(得分:3)
Redux (and in general, the flux pattern) is all about having the entire application state stored in one central place. This has the benefit of easier debugging and makes it easier to implement certain features.
If you've ever used the redux-devtools in a react app with react-router, you'll notice that its only of limited use, because you can't replay the entire lifecycle of the application. When the user changes routes, that's not recorded in the redux store. Redux Router keeps the route state in the store.
You could use this for debugging, you could serialise the entire store history and log it elsewhere to replay user sessions. You could hook into it to implement full undo, or log analytics events.
答案 1 :(得分:1)
redux-simple-router是一个可以帮助您了解如何在redux应用程序中使用react路由器的库。
这是一个非常简单的库,它将URL存储在redux状态,并使其与任何react-router更改保持同步。
与 redux-router 相比,redux-simple-router 是:
按照以下两个示例之一启动并运行: