【发布时间】:2015-08-08 02:32:15
【问题描述】:
我的客户有特定的 SEO/URL 要求,我正在尝试弄清楚如何使用 react-router 进行这项工作。
如何将一组匹配相同模式的 URL 声明为使用不同的处理程序?
例如/A 是 HandlerA 但 /B 是 HandlerB 并且 /B/C 也是 HandlerA ,其中必须满足许多排列(在运行时动态)。
【问题讨论】:
标签: reactjs react-router
我的客户有特定的 SEO/URL 要求,我正在尝试弄清楚如何使用 react-router 进行这项工作。
如何将一组匹配相同模式的 URL 声明为使用不同的处理程序?
例如/A 是 HandlerA 但 /B 是 HandlerB 并且 /B/C 也是 HandlerA ,其中必须满足许多排列(在运行时动态)。
【问题讨论】:
标签: reactjs react-router
假设全局 RouteTable 包含做出决定所需的所有数据,事实证明这可以在构造 <Route> 对象之前完成:
var routes = RouteTable.map(r => {
if (some logic) {
return (<Route handler={A} name={r.url} path={r.url} />);
} else {
return (<Route handler={B} name={r.url} path={r.url} />);
}
});
var routes = (
<Route path='/'>
{routes}
</Route>
);
然后所有<Links> 都只是用 URL 完成的,例如<Link to={url}>...
【讨论】:
r => 语法只是function(r) 的ECMAScript 6