Javascript 您将如何使用react路由器实现拆分视图接口?
我想构建拆分视图功能,以便用户可以并排查看多个组件 在我的应用程序的单个视图中,react路由器URL的设置如下:Javascript 您将如何使用react路由器实现拆分视图接口?,javascript,reactjs,react-router,splitview,Javascript,Reactjs,React Router,Splitview,我想构建拆分视图功能,以便用户可以并排查看多个组件 在我的应用程序的单个视图中,react路由器URL的设置如下: /用户/:id /chat/:id /etc/:id 您将如何实现react路由器以使用拆分视图 有许多不同的界面,我希望用户能够以任何顺序呈现任何组合的界面 我正在考虑创建一个SplitView组件,该组件有一个childrenComponents道具,它需要渲染一组组件。我可能会设置以下URL: /分裂/ 然后在末尾添加一个查询字符串 ?视图=%5B%7B%22组件%
- /用户/:id
- /chat/:id
- /etc/:id
- /分裂/
- ?视图=%5B%7B%22组件%22:%22chat%22,%22id%22:%22123%22%7D,%7B%22组件%22:%22chat%22,%22id%22:%22456%22%7D%5D
[
{
component:'chat',
id:'foo'
},
{
component:'chat',
id:'bar'
}
]
这不是最好的方法,有人有什么建议吗
更新 在试用了几种不同的方法之后,我发现不用react路由器管理多个路由更容易,而只需使用redux和经过深思熟虑的状态树 然而,在我搜索的过程中,我发现了一些很酷的库,可以帮助其他有类似问题的人:
- 我认为您的方法可以稍加修改
在路由中声明
/split/*
,它最终看起来像/split/user/1/basket/2/item/3
然后使用此函数获取组件列表:
pathArray = path.split('/').filter(s => (s !=== ''))
path = _.chunk(pathArray, 2) // note lodash usage here
您现在有了[['user','1'],['basket','2'],['item','3']]
。如果页面上的组件顺序无关紧要,您可以使用lodash的fromPairs
来获取对象
在拆分组件中使用类似于react loadable
的方法,以防止在一个块中加载所有组件
就是这个主意你检查过这个了吗?lodash的使用很好,我将使用这种技术试验一个基本的实现请告诉我结果