【发布时间】:2026-02-05 03:00:01
【问题描述】:
假设我有这个应用程序代码
const Menu = () => {
return (
<nav>
<Link to="/">Home</Link>
<Link to="/contact">Contact</Link>
<Link to="/about">Contact</Link>
</nav>
)
};
const App = () => {
return (
<Router>
<div>
<Menu/>
<Route exact path="/" component={Home} />
<Route path="/contact" render={() =>
<h1>Contact</h1>
} />
<Route path="/about" render={() =>
<h1>About</h1>
} />
</div>
</Router>
);
};
export default App;
我只想知道如何使路由路径成为非静态路径并将整个路由树基于某种配置。
假设我想将/about 路由路径更改为/about_us。在这种情况下,我需要在整个项目中搜索/about 字符串并正确替换它。当项目相当大时,这将不是乐观的方式。
如果我有一些存储在常量中的路由配置和某种函数,它会根据路由名称和查询参数等数据生成整个路径。例如:
const ROUTES = {
home : '/',
page: '/page/:pageid',
about: '/about'
};
const url = (routeName, routeParams) => {
// here generate route for particular route name
};
然后我可以像这样更改我的 JSX:
<Link to={ url('contact') }>Contact</Link>
因此,随着ROUTES 常量的更改,使用url() 函数生成的所有路由路径也将更改。
我的问题是:
对于这类问题有什么好的现有解决方案/实践/模式/包?
(顺便说一句。刚刚学习 ReactJS)
然后出现另一个问题。 ReactJS 应用程序的模块化是什么。如何将路由配置划分为仅存储在特定模块中(例如:在“博客”模块中发布路由配置)。
【问题讨论】:
-
我假设您使用的是 react-router?如果是这样,这可以派上用场github.com/ReactTraining/react-router/tree/master/packages/…
标签: javascript reactjs react-router react-jsx