Vue Router页面跳转指南:告别a标签,拥抱组件化无刷新跳转

前言:为什么要用Vue Router?

传统网页开发使用<a href>实现页面跳转,但会导致整个页面刷新,用户体验差且性能开销大。Vue Router提供的<RouterLink>组件可实现组件级别的无刷新跳转,完美契合单页应用的需求。

基础使用:两步实现优雅跳转

配置路由规则

文件位置:src/router/index.js

javascript 复制代码
import About from '../views/About.vue'

export default [
  { 
    path: '/company',     // 访问路径
    name: 'company',      // 路由名称(可选但推荐)
    component: About      // 映射的组件
  }
]

使用RouterLink跳转

在Vue组件的template中:

html 复制代码
<RouterLink to="/company">企业介绍</RouterLink>
效果对比:传统 vs Vue Router
特性 传统 <a href> Vue Router <RouterLink>
页面刷新 整页刷新 仅组件切换,无刷新
性能 需重新加载所有资源 只加载必要组件
用户体验 有白屏闪烁 平滑过渡
URL变化 通过href跳转 通过前端路由控制
核心优势解析

无刷新加载组件

点击<RouterLink>时:

  1. Vue Router拦截点击事件
  2. 根据路由配置找到对应组件
  3. 动态替换<router-view>区域内容
  4. URL同步更新(无HTTP请求)

自动激活状态

当前路由匹配时会自动添加class

html 复制代码
<RouterLink 
  to="/company" 
  class="router-link-active router-link-exact-active"
>企业介绍</RouterLink>

支持多种路由形式

html 复制代码
<!-- 基础路径 -->
<RouterLink to="/company">企业介绍</RouterLink>

<!-- 命名路由 -->
<RouterLink :to="{ name: 'company' }">企业介绍</RouterLink>

<!-- 带参数 -->
<RouterLink to="/company/123">企业详情</RouterLink>
进阶技巧

自定义激活类名

javascript 复制代码
// router/index.js
const router = createRouter({
  linkActiveClass: 'active-link',      // 部分匹配
  linkExactActiveClass: 'exact-active' // 精确匹配
})

编程式导航

在方法中跳转:

javascript 复制代码
methods: {
  goToCompany() {
    this.$router.push('/company')
    // 或使用命名路由
    this.$router.push({ name: 'company' })
  }
}

路由懒加载(优化性能)

javascript 复制代码
{
  path: '/company',
  component: () => import('../views/About.vue') // 按需加载
}
实战示例

完整路由配置

文件:src/router/index.js

javascript 复制代码
import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  {
    path: '/company',
    name: 'company',
    component: () => import('../views/About.vue'),
    meta: { title: '企业介绍' } // 附加元信息
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

导航菜单实现

文件:src/App.vue

html 复制代码
<template>
  <nav>
    <RouterLink 
      to="/company"
      active-class="active"
    >
      企业介绍
    </RouterLink>
  </nav>
  <router-view></router-view>
</template>

<style>
.active {
  color: #42b983;
  font-weight: bold;
}
</style>
总结要点
  1. 配置路由:在router/index.js中建立路径与组件的映射
  2. 使用<RouterLink>:替代传统的<a>标签实现无刷新跳转
  3. 显示区域:在布局中添加<router-view>作为内容容器
  4. 优势:更高效、更灵活🎉
相关推荐
雪隐43 分钟前
用Flutter做背单词APP-01服务器?不存在的,我家里就有
前端·人工智能·后端
用户2204603958681 小时前
ES模块和commonJS两种标准下中实现__dirname?一篇文章教你理清楚
前端
犹豫的大炮2 小时前
jQuery最核心的基础设施之一——数据缓存模块进化史
前端·缓存·jquery
小碗细面2 小时前
从 PRD 到上线:SpecKit 如何让 AI 真正参与前端交付
前端·ai编程·claude
WL学习笔记2 小时前
链式队列(数据结构)
前端·数据结构·jquery
我是大卫2 小时前
React源码解析-第三部分:协调与提交
前端·react.js·源码
都想学2 小时前
我把 12 个在线工具关掉了,换成了一个 Chrome 扩展
前端·chrome
xiaogai_gai2 小时前
钉钉数据集成到金蝶云星空案例分享:传给钉钉后,回传金蝶字段
java·前端·钉钉
步步为营DotNet2 小时前
借助 Semantic Kernel 与 Blazor 构建智能交互式前端应用
前端
神奇的代码在哪里2 小时前
AI编程时代,PPT已成为过去,单个HTML文件创造无限可能
javascript·html·powerpoint·ai编程·ppt