在React中,动态链接通常是通过React Router库来实现的,它允许你在应用中创建和管理路由。在React Router v4及以后的版本中,你可以使用react-router-dom
包来处理路由。
路由(Routing):路由是指在Web应用中,根据URL的不同,展示不同的页面或组件的机制。
动态链接(Dynamic Links):动态链接是指URL中包含可变参数的链接,这些参数可以在不同的请求中取不同的值。
?key=value
的形式出现在URL末尾。首先,你需要安装react-router-dom
:
npm install react-router-dom
import { BrowserRouter as Router, Route, Switch, Link } from 'react-router-dom';
function UserProfile({ match }) {
const { userId } = match.params;
return <div>User ID: {userId}</div>;
}
function App() {
return (
<Router>
<nav>
<ul>
<li>
<Link to="/user/123">User 123</Link>
</li>
</ul>
</nav>
<Switch>
<Route path="/user/:userId" component={UserProfile} />
</Switch>
</Router>
);
}
export default App;
import { BrowserRouter as Router, Route, Switch, Link, useLocation } from 'react-router-dom';
function SearchResults() {
const location = useLocation();
const queryParams = new URLSearchParams(location.search);
const keyword = queryParams.get('keyword');
return <div>Search results for: {keyword}</div>;
}
function App() {
return (
<Router>
<nav>
<ul>
<li>
<Link to="/search?keyword=react">React</Link>
</li>
</ul>
</nav>
<Switch>
<Route path="/search" component={SearchResults} />
</Switch>
</Router>
);
}
export default App;
问题:如何获取URL中的动态参数?
解决方法:
match.params
来获取。URLSearchParams
接口来解析location.search
。示例代码:
import { useLocation } from 'react-router-dom';
function useQuery() {
return new URLSearchParams(useLocation().search);
}
function SearchResults() {
const query = useQuery();
const keyword = query.get('keyword');
return <div>Search results for: {keyword}</div>;
}
通过这种方式,你可以轻松地在React应用中处理动态链接和参数传递。
领取专属 10元无门槛券
手把手带您无忧上云