沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Axios入门
  • Vue Router入门
  • Pinia入门
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Axios入门
  • Vue Router入门
  • Pinia入门
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • 前端环境搭建
  • HTML与CSS
  • JavaScript 知识点整理
  • Axios入门
  • Vue Router入门
    • 一、前端路由 = “单页应用中的控制器导航”
    • 二、安装与初始化 Router
      • 1. 安装
      • 2. 创建路由配置文件(推荐写在 src/router/index.js)
      • 3. 挂载路由到应用中(main.js)
    • 三、视图跳转:你从哪个“URL”加载哪个页面?
      • 1. 在 App.vue 添加 <router-view />
      • 2. 创建页面组件
    • 四、导航跳转方式(静态与编程式)
      • 1. 使用 <router-link>
      • 2. 使用 JS 跳转(编程式导航)
    • 五、传参方式详解(路径、查询、状态)
      • 1. 动态路径参数(类似 /user/123)
      • 2. 查询参数(?key=value)
    • 嵌套路由与命名路由
    • 七、导航守卫:前端权限控制核心
      • 示例:未登录用户重定向到登录页
    • 八、实战建议小练习
    • 九、总结
  • Pinia 入门
  • Vue3入门
  • Vue3 进阶
  • 黑马Vue3
  • 前端学习
沉梦听雨
2025-05-20
目录

Vue Router入门

# Vue Router 入门

官方文档:Vue Router (opens new window)

# 一、前端路由 = “单页应用中的控制器导航”

在 Java 后端中,你会定义很多 Controller,接收不同路径请求,比如 /user/list、/user/detail。

前端使用 Vue Router,也是通过路径来切换页面视图(组件),只不过是在浏览器端完成页面切换,而不是后端渲染 HTML。

Vue Router = 前端页面的“路径跳转控制器”。

# 二、安装与初始化 Router

# 1. 安装

npm install vue-router
1

# 2. 创建路由配置文件(推荐写在 src/router/index.js)

// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router';
import Home from '@/views/Home.vue';
import User from '@/views/User.vue';

const routes = [
  { path: '/', component: Home },
  { path: '/user', component: User }
];

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

export default router;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 3. 挂载路由到应用中(main.js)

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

createApp(App).use(router).mount('#app');
1
2
3
4
5

# 三、视图跳转:你从哪个“URL”加载哪个页面?

# 1. 在 App.vue 添加 <router-view />

<template>
  <router-view></router-view> <!-- 相当于“子路由入口” -->
</template>
1
2
3

# 2. 创建页面组件

<!-- src/views/User.vue -->
<template><h2>用户页面</h2></template>
1
2

访问浏览器中的 /user,就会看到这个页面。

# 四、导航跳转方式(静态与编程式)

# 1. 使用 <router-link>

<router-link to="/user">进入用户页</router-link>
1

# 2. 使用 JS 跳转(编程式导航)

import { useRouter } from 'vue-router';

const router = useRouter();
router.push('/user'); // 类似后端的重定向
1
2
3
4

# 五、传参方式详解(路径、查询、状态)

# 1. 动态路径参数(类似 /user/123)

// 路由配置
{ path: '/user/:id', component: UserDetail }

// 页面跳转
router.push('/user/123')

// 在 UserDetail 组件中获取参数
import { useRoute } from 'vue-router';
const route = useRoute();
console.log(route.params.id); // 123
1
2
3
4
5
6
7
8
9
10

# 2. 查询参数(?key=value)

router.push({ path: '/user', query: { name: 'jack' } });
// => /user?name=jack
1
2

# 嵌套路由与命名路由

适用于页面中嵌套页面(如 tab 页)。

{
  path: '/admin',
  component: AdminLayout,
  children: [
    { path: 'user', component: AdminUser },
    { path: 'role', component: AdminRole }
  ]
}
1
2
3
4
5
6
7
8

访问 /admin/user 会加载 AdminLayout + AdminUser。

# 七、导航守卫:前端权限控制核心

类比后端的拦截器、Spring Security。

# 示例:未登录用户重定向到登录页

router.beforeEach((to, from, next) => {
  const token = localStorage.getItem('token');
  if (to.path !== '/login' && !token) {
    next('/login');
  } else {
    next(); // 放行
  }
});
1
2
3
4
5
6
7
8

# 八、实战建议小练习

  1. 创建两个页面:用户列表 /users,用户详情 /users/:id
  2. 点击列表项跳转到详情页,展示用户 ID
  3. 在跳转前判断是否已登录(用导航守卫)

# 九、总结

概念 类比 Java 后端 Vue Router
页面路由控制 Controller 路径跳转 createRouter()
参数传递 PathVariable / RequestParam :id, query
页面跳转 redirect、forward router.push()
权限拦截 Spring Security / Interceptor beforeEach()
嵌套模块 子 Controller / 模块结构 children 配置
上次更新: 2025/5/20 17:42:11
Axios入门
Pinia 入门

← Axios入门 Pinia 入门→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式