当前位置: 首页 > news >正文

Vue基本路由

一、前言

你是否见过这样的网站:点击导航菜单,页面内容变了,但浏览器并没有“刷新”?
这就是 单页应用(SPA) 的典型特征,而实现这种“无刷新跳转”的核心技术,就是——前端路由

在 Vue 中,我们使用 vue-router 来管理页面之间的跳转。它是 Vue 官方的路由管理器,与 Vue 深度集成,使用非常简单。

本文将带你: ✅ 理解什么是前端路由
✅ 快速搭建一个带路由的 Vue 项目
✅ 掌握 router-linkrouter-view 的基本用法
✅ 实现页面跳转与参数传递

无需任何前置知识,跟着步骤一步步操作,你也能轻松实现页面切换!

二、什么是路由?

在 Web 开发中,“路由”原本是服务器端的概念:根据不同的 URL,返回不同的页面内容

而在前端,“前端路由”指的是:根据不同的 URL,渲染不同的组件,而不刷新整个页面

比如:

  • 访问 / → 显示首页
  • 访问 /about → 显示关于页
  • 访问 /user/123 → 显示用户 123 的信息

这一切都在同一个 HTML 页面中完成,用户体验更流畅。

三、创建一个带路由的 Vue 项目

1. 使用 Vue CLI 创建项目(推荐)

# 安装 Vue CLI(如果未安装)
npm install -g @vue/cli# 创建项目
vue create my-project# 进入项目
cd my-project

在创建过程中,选择 “Manually select features”,然后勾选 Router,这样会自动安装并配置 vue-router


2. 项目结构说明

安装 vue-router 后,项目中会多出以下文件:

src/
├── router/
│   └── index.js        # 路由配置文件
├── views/
│   ├── Home.vue        # 首页组件
│   └── About.vue       # 关于页组件
└── App.vue             # 根组件,包含 router-view

四、基本路由配置

打开 src/router/index.js,你会看到类似代码:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'// 定义路由规则
const routes = [{ path: '/', component: Home },{ path: '/about', component: About }
]// 创建路由实例
const router = createRouter({history: createWebHistory(), // 使用 history 模式routes
})export default router

✅ 这段代码的意思是:

  • 当 URL 是 / 时,显示 Home 组件
  • 当 URL 是 /about 时,显示 About 组件

五、使用 <router-view> 和 <router-link>

1. <router-view>:路由出口

<router-view> 是一个占位符,匹配到的组件会在这里显示。

打开 App.vue

<template><div id="app"><h1>我的网站</h1><!-- 导航菜单 --><nav><router-link to="/">首页</router-link> |<router-link to="/about">关于</router-link></nav><!-- 路由组件渲染在这里 --><router-view></router-view></div>
</template><style>
nav a {text-decoration: none;margin: 0 10px;
}
nav a.router-link-exact-active {color: #42b983;font-weight: bold;
}
</style>

2. <router-link>:声明式导航

  • to="/" 表示点击后跳转到 / 路径
  • 它会被渲染为 <a> 标签,但不会刷新页面
  • 当前激活的链接会自动添加 router-link-exact-active 类,可用于样式高亮

六、运行项目

npm run serve

打开浏览器访问 http://localhost:8080,你会发现:

  • 默认显示“首页”内容
  • 点击“关于”,页面内容变为“关于页”,URL 变为 /about,但页面没有刷新!

✅ 恭喜你,已经成功实现了 Vue 的基本路由!

七、动态路由(简单了解)

如果你想根据用户 ID 显示不同内容,比如 /user/1/user/2,可以使用动态路由

1. 添加动态路由

// router/index.js
import User from '../views/User.vue'const routes = [// ... 其他路由{ path: '/user/:id', component: User } // :id 是动态参数
]

2. 在组件中获取参数

<!-- views/User.vue -->
<template><div><h2>用户详情</h2><p>当前用户ID:{{ $route.params.id }}</p></div>
</template><script>
export default {mounted() {console.log('用户ID:', this.$route.params.id)}
}
</script>

现在访问 /user/123,页面会显示 “当前用户ID:123”。

八、编程式导航(用 JS 跳转)

除了点击链接,你也可以用 JavaScript 控制跳转。

<template><div><button @click="goHome">回到首页</button><button @click="goAbout">去关于页</button></div>
</template><script>
export default {methods: {goHome() {this.$router.push('/')},goAbout() {this.$router.push('/about')}}
}
</script>
  • this.$router.push(path):跳转到指定路径
  • this.$router.back():后退一页

九、常见问题

❓ 页面跳转后,浏览器地址栏没变化?

检查是否正确引入了 router

// main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'  // 引入路由createApp(App).use(router).mount('#app') // 使用路由

❓ 刷新页面出现 404?

如果你使用的是 history 模式(正常 URL),需要服务器配置支持,否则刷新会 404。
开发环境下不会有问题,生产部署时需配置服务器(如 Nginx)将所有请求指向 index.html

十、总结

概念作用
vue-routerVue 的官方路由管理器
<router-link>用于跳转的链接,不会刷新页面
<router-view>匹配的组件会在这里显示
routes定义路径与组件的映射关系
$route.params获取动态路由参数
this.$router.push()用 JS 跳转页面

📌 一句话记住
路由 = 路径 + 组件,通过 <router-link> 跳转,<router-view> 显示。

十一、结语

感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!

http://www.dtcms.com/a/589541.html

相关文章:

  • 基于springboot的作业管理系统设计与实现
  • Tauri开发手记——1.开发环境
  • 天翼云 ECS 弹性云主机的IP地址无法访问,无法访问 ECS 的网站,解决方案(随手记)
  • 名费网站制作视频教程淘宝代运营公司哪家好
  • 【开题答辩全过程】以 基于springboot美食分享网站为例,包含答辩的问题和答案
  • 福永自适应网站建智能建站系统官网
  • 【FPGA+DSP系列】——MATLAB simulink仿真整流电路
  • (* clock_buffer_type=“NONE“ *)
  • 上海网站建设最佳方案本地wordpress 上传到服务器
  • 消除FFmpeg库的SONAME依赖
  • 网站制作金华公司电话免费培训seo
  • Qt编程Action:Qt的自动反色方案
  • 福田网站建设费用明细国际消息新闻
  • 网站备案失败wordpress 模版标签
  • Linux开发工具(4)
  • 怎么办一个网站wordpress个人中心无法登录
  • U-Net:用于生物医学图像分割的卷积网络,经典中的经典,后续所有创新改进的起点
  • 基于n8n构建最新资讯自动获取:从RSS抓取到智能分析实践
  • 深圳注明企业网站设计山西网站建设方案
  • 【强化学习】可证明安全强化学习(Provably Safe RL)算法详细介绍
  • 【性能优化】前端高性能优化策略
  • 【LeetCode】106. 从中序与后序遍历序列构造二叉树
  • 手机怎么建自己的网站管理网络的网站
  • SpringCloud02-服务拆分远程调用
  • JavaScript判空最佳实践
  • 做的网站缩小内容就全乱了珠海网站建设官网
  • 突破AI助手成本壁垒:知识图谱思维架构让小模型实现大性能
  • 做网站使用明星照片可以吗保护动物网站建设策划书
  • 【Linux学习】新建系统(Ubuntu)后的一些开局必要操作配置
  • 十大免费网站推广网络规划工程师