1. 通过 <a> 标签跳转 (<a href="/test">通过a标签</a>)
- 这是一种传统的页面跳转方式,点击
<a> 标签时,浏览器会加载指定的 URL。
- 刷新页面:当用户点击
<a> 标签时,浏览器会重新加载页面,导致整个页面的刷新,通常适用于常规的页面间跳转。
- 适用场景:适用于传统的 HTML 页面跳转,或者没有使用前端路由管理的应用。
2. 通过 RouterLink 跳转 (<RouterLink to="/test">通过router跳转</RouterLink>)
RouterLink 是 Vue Router 提供的一个组件,用于在 Vue.js 单页面应用(SPA)中进行导航。
- 不刷新页面:点击
RouterLink 时,Vue Router 会拦截这个事件,通过客户端的路由机制处理跳转,不会引起页面刷新,只会更新页面的视图部分。
- 适用场景:用于 Vue.js 应用中,能保证 SPA 应用的单页面体验,避免页面的刷新。
3. 通过 router.push 跳转 (router.push('/test'))
router.push 是 Vue Router 提供的方法,用于在编程式导航中跳转到指定路由。
- 不刷新页面:类似于
RouterLink,router.push 会利用 Vue Router 管理的路由跳转,不会刷新页面。
- 适用场景:通常在事件处理或代码逻辑中进行跳转,比如在按钮点击、表单提交等逻辑中进行页面跳转。
4. 通过 router.replace 跳转 (router.replace('/test'))
router.replace 和 router.push 类似,也是用来进行路由跳转的方法,区别在于:
- 不刷新页面:和
router.push 一样,不会刷新页面。
- 替换历史记录:
replace 方法会替换当前的历史记录,而不是将新路由添加到浏览器历史记录中。这意味着用户点击浏览器的“后退”按钮时,页面不会回到使用 replace 跳转之前的路由页面。
- 适用场景:当你不希望用户通过浏览器的后退按钮返回到当前页面时,使用
router.replace 比如登录页面跳转到首页时。
<div style="margin-bottom: 20px">
<a href="/test">通过a标签</a> ///
<RouterLink to="/test">通过router跳转</RouterLink>
</div>
<div>
<el-button type="primary" @click="router.push('/test')">push跳转</el-button>
<el-button type="primary" @click="router.replace('/test')">repace跳转</el-button>
</div>