router-link
是 Vue Router 提供的一个组件,用于在 Vue 应用中创建导航链接。当点击 router-link
时,它会根据 to
属性指定的路由地址(或路径名)来导航到对应的页面。这样做的好处是,它可以自动处理 URL 的更新和页面的渲染,而不需要你手动编写 JavaScript 代码来控制这些。
基本用法
在 Vue 文件中,你可以这样使用 router-link
:
html
<template>
<div>
<!-- 使用字符串 -->
<router-link to="/home">Home</router-link>
<!-- 使用对象 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
<!-- 使用 v-bind 绑定表达式 -->
<router-link v-bind:to="'/about'">About</router-link>
<!-- 使用 HTML5 的 history 模式,如果 Vue Router 配置为 history 模式 -->
<router-link to="/contact" replace>Contact</router-link>
</div>
</template>
<script>
export default {
// 你的组件选项
}
</script>
注意事项
-
to 属性 :这是
router-link
最关键的一个属性,它决定了链接要导航到的目标路由。to
可以是一个字符串(路径名),也可以是一个描述地址的对象(包含name
或path
属性的对象,还可以包含params
、query
、hash
等属性来指定路由的查询参数、哈希值等)。 -
replace 属性 :如果你不想在 history 中留下当前的导航记录(即不希望用户可以点击浏览器的后退按钮回到这个页面),可以设置
replace
属性为true
。这将会使用history.replaceState()
而不是history.pushState()
来更新 URL,从而不会增加 history 记录。 -
tag 属性 :默认情况下,
router-link
会渲染成一个<a>
标签。但是,你可以通过tag
属性将其渲染成任何你想要的标签,比如<li>
、<span>
等。 -
active-class 属性 :当
<router-link>
对应的路由被激活时(即当前页面正是该路由对应的页面),Vue Router 会自动给该元素添加一个类名(默认为router-link-active
)。你可以通过active-class
属性来自定义这个类名。 -
exact 属性 :当
router-link
使用嵌套路由时,可能需要精确匹配路由路径。此时,可以设置exact
属性为true
,以确保只有当路径完全匹配时才激活链接。
通过合理使用 router-link
,你可以轻松地在 Vue 应用中实现单页面应用的导航功能。