【Vue2 ✨】Vue2 入门之旅(九):Vue Router 入门

在前面几篇文章中,我们学习了 Vue 的模板、组件、动画等知识。本篇将介绍 Vue Router,它是 Vue 官方提供的路由管理器,用于构建单页应用(SPA)。


目录

  1. 什么是路由
  2. [Vue Router 安装与引入](#Vue Router 安装与引入)
  3. 基本用法
  4. 动态路由
  5. 嵌套路由
  6. 编程式导航
  7. 小结

什么是路由

在传统网站中,点击链接会向服务器发送请求,返回新的 HTML 页面。

在 单页应用(SPA) 中,页面只有一个 HTML,切换页面其实是切换 组件,路由负责管理这种组件切换。


Vue Router 安装与引入

在 HTML 中直接引入:

html 复制代码
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-router@3/dist/vue-router.js"></script>

或者在项目中安装:

bash 复制代码
npm install vue-router@3

基本用法

html 复制代码
<div id="app">
  <p>
    <router-link to="/home">首页</router-link>
    <router-link to="/about">关于</router-link>
  </p>
  <router-view></router-view>
</div>

<script>
// 定义组件
const Home = { template: '<h2>这里是首页</h2>' }
const About = { template: '<h2>这里是关于页</h2>' }

// 定义路由
const routes = [
  { path: '/home', component: Home },
  { path: '/about', component: About }
]

// 创建路由实例
const router = new VueRouter({ routes })

// 创建 Vue 实例
new Vue({
  el: '#app',
  router
})
</script>
  • <router-link> 用来生成导航链接
  • <router-view> 用来显示匹配到的组件

动态路由

可以在路径中使用参数:

html 复制代码
<div id="app">
  <router-link to="/user/101">用户 101</router-link>
  <router-view></router-view>
</div>

<script>
const User = { 
  template: '<p>用户 ID:{{ $route.params.id }}</p>' 
}

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

const router = new VueRouter({ routes })

new Vue({
  el: '#app',
  router
})
</script>

访问 /user/101 时,会显示 用户 ID:101。


嵌套路由

路由里还可以嵌套子路由。

html 复制代码
<div id="app">
  <router-link to="/parent/child">子页面</router-link>
  <router-view></router-view>
</div>

<script>
const Parent = { template: '<div>父页面 <router-view></router-view></div>' }
const Child = { template: '<p>子页面</p>' }

const routes = [
  { 
    path: '/parent', 
    component: Parent,
    children: [
      { path: 'child', component: Child }
    ]
  }
]

const router = new VueRouter({ routes })

new Vue({
  el: '#app',
  router
})
</script>

编程式导航

除了 <router-link>,我们也可以在代码里跳转。

js 复制代码
this.$router.push('/home')
this.$router.replace('/about')
this.$router.go(-1) // 后退一步

小结

  1. Vue Router 用于管理 SPA 的页面切换。
  2. 核心组件:<router-link>(导航)、<router-view>(渲染)。
  3. 常见功能:基本路由、动态路由、嵌套路由、编程式导航。

📚 下一篇文章,我们将学习 Vuex 入门,理解状态管理的思想。

相关推荐
子兮曰4 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
paopaokaka_luck7 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787057 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH7 小时前
HTML 的 <video> 元素
前端·html
溪语流沙8 小时前
【每天一个CSS | Day19】流光文字与一笔写成的手写签名
前端·javascript·css
逐光者9338 小时前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
To_OC8 小时前
同样是让 AI 写全栈,为什么别人一句话就够了
前端·前端框架·next.js
CDwenhuohuo8 小时前
electron pc项目打包成桌面端
前端·javascript·electron
前端大斗师8 小时前
「大于 1000」把 1000 元那单也算进去了:我在 Vue3 订单页对了 10 句话
前端·人工智能·typescript·大模型·原力计划
Jmyd01239 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化