30 React Router简介之使用Link和NavLink

在上一篇中,我们讨论了如何创建路由与导航。在这一章节中,我们将深入了解如何在 React 应用中使用 LinkNavLink 组件来实现导航功能。这两个组件是使用 React Router 进行导航的关键工具,它们能够帮助用户在应用的不同页面之间进行切换,而无需重新加载整个页面。

1. Link组件的使用

Link 组件用于在应用的不同组件之间进行导航。它生成一个可点击的链接,用户点击后会让应用转到另一个路径。

使用示例

首先,请确保你已经在项目中安装了 react-router-dom。可以通过以下命令安装:

1
npm install react-router-dom

接下来,我们可以创建一个简单的应用,在其中使用 Link 组件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import React from 'react';
import { BrowserRouter as Router, Route, Link, Switch } from 'react-router-dom';

const Home = () => <h2>首页</h2>;
const About = () => <h2>关于我们</h2>;

function App() {
return (
<Router>
<nav>
<ul>
<li>
<Link to="/">首页</Link>
</li>
<li>
<Link to="/about">关于我们</Link>
</li>
</ul>
</nav>

<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
}

export default App;

在这个例子中,我们首先导入了 LinkRoute 组件。Link 组件的 to 属性指定了链接的路径。点击这个链接时,HomeAbout 组件会被渲染到页面中。

2. NavLink组件的使用

NavLink 组件与 Link 相似,但提供了更强大的功能,包括激活样式的支持。它使我们能够在用户导航到特定路由时,自动应用样式。

使用示例

我们可以使用 NavLink 为当前激活的链接添加样式,具体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import React from 'react';
import { BrowserRouter as Router, Route, NavLink, Switch } from 'react-router-dom';

const Home = () => <h2>首页</h2>;
const About = () => <h2>关于我们</h2>;

function App() {
return (
<Router>
<nav>
<ul>
<li>
<NavLink to="/" exact activeClassName="active">首页</NavLink>
</li>
<li>
<NavLink to="/about" activeClassName="active">关于我们</NavLink>
</li>
</ul>
</nav>

<Switch>
<Route path="/about">
<About />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>
</Router>
);
}

export default App;

在这个例子中,我们使用 NavLink 代替 LinkNavLinkactiveClassName 属性允许我们指定一种样式,当链接指向的路径匹配当前页面时,这种样式将被添加。例如,我们可以使用 CSS 来定义 .active 类。

1
2
3
4
.active {
font-weight: bold;
color: blue;
}

这样,在用户浏览到相应的路径时,NavLink 会被赋予 .active 类,从而改变其样式。

3. 小结

在这一节中,我们了解了 LinkNavLink 组件的基本用法。Link 用于创建简单的页面链接,而 NavLink 则提供了激活状态的样式处理。通过这些组件,我们能够构建出具有良好用户体验的单页应用。

接下来,我们将深入探讨 React 中的 Hooks 使用,特别是 useStateuseEffect 的介绍。这些 Hooks 将使我们在组件中管理状态和副作用变得更加高效。

30 React Router简介之使用Link和NavLink

https://zglg.work/react-zero/30/

作者

AI免费学习网(郭震)

发布于

2024-08-10

更新于

2024-08-10

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论