我已阅读官方Redux documentation regarding React Router并调查react-router-redux,redux-router和redux-little-router。我也同意rational for redux-little-router:React Router对React应用程序有很强的架构结果,并且它们与Redux发生冲突。
我对路由的感觉是它在React + Redux生态系统中过于重要,而它应该被视为二等公民。在设计单页应用时,我们通常根本不需要网址。我们仍然支持他们保留Web体验(SEO,书签......),但我们当然不希望他们推动应用程序结构。
我在想什么:
Route
那样,有点像redux-little-router。renderURL
函数。如果状态更新没有在URL中生成任何更改,那么没有任何反应。但是,如果URL现在不同,则中间件通过将其推送到历史记录来反映更改。使用这种方法,不再有Link
个组件。只有常规的Redux操作和中间件来处理导航作为副作用。实际上,这个解决方案用于导航React为DOM做的事情:一个(超级直接的)URL协调,将状态作为单一事实来源。
为了说明这一点,请考虑Redux Todo list example:
/SHOW_ALL
时,将调度包含该URL的操作。常规的导航专用reducer在状态中设置visibilityFilter
到VisibilityFilters.SHOW_ALL
,可能还有一些路由映射/解析帮助器。作为替代方案,导航操作可以转换为SET_VISIBILITY_FILTER
操作,然后像往常一样调度和减少。renderURL
函数作为中间件的一部分。它返回"/" + state.visibilityFilter
。同样,一些路线管理助手会受到现实生活中的欢迎。现在original Todo app没有变化。我们只添加一些新代码来支持新功能。
问题是:我找不到任何支持这一愿景的东西。没有文章,没有react-redux-something包。作为React的初学者,要么我是天才,要么就是我无法得到的东西。由于后者最有可能(令我极为沮丧),我将不胜感激: