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

Vue Router 3 使用详解:从零构建嵌套路由页面

Vue Router 是 Vue.js 官方的路由管理器,常用于构建单页面应用(SPA)。本文将手把手带你完成 vue-router@3.6.5 的基本配置,并实现一个带有嵌套路由的页面结构。本文适用于 Vue 2.x 项目

一、安装 vue-router@3.6.5

npm install vue-router@3.6.5

二、创建 Router 配置文件

src/router/ 目录下创建 index.js 文件:

// src/router/index.js
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/views/Home.vue'
import User from '@/views/User.vue'
import Main from '@/views/Main.vue'Vue.use(Router)export default new Router({routes: [{path: '/',redirect: '/main'},{path: '/main',component: Main,children: [{path: 'home',component: Home},{path: 'user',component: User}]}]
})

说明:

  • 根路径 / 会重定向到 /main;

  • /main 是一个主路由,它内部通过 children 配置两个子页面:/main/home 和 /main/user;

  • Home 和 User 是实际渲染的业务页面。

三、准备页面组件(views)

src/views/ 目录下,创建以下三个页面组件:

① Home.vue:

② User.vue:

③ Main.vue(嵌套路由的父组件):

<template><div><h2>Main 页面</h2><router-link to="/main/home">首页</router-link> |<router-link to="/main/user">用户</router-link><!-- 嵌套路由的出口 --><router-view /></div>
</template>

四、在 main.js 中挂载路由

修改 main.js 文件,引入并挂载路由实例:

// src/main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'Vue.config.productionTip = falsenew Vue({router,render: h => h(App),
}).$mount('#app')

五、在 App.vue 中添加 router-view 出口

App.vue 是所有页面的入口容器,在这里加入一级路由的出口:

<template><div id="app"><router-view /></div>
</template>

六、效果展示与说明

访问路径说明:

  • 访问 http://localhost:8080/ 会自动重定向到 /main;

  • /main 页面展示 Main.vue 的内容,内部包含路由链接;

  • 点击 “首页” 会加载 Home.vue;

  • 点击 “用户” 会加载 User.vue;

  • Main.vue 是嵌套子路由的容器,通过 <router-view /> 显示子页面内容。

七、总结

在 Vue 2 项目中使用 vue-router,我们首先通过 npm 安装 vue-router@3.6.5。然后在 src/router 目录下新建一个 index.js 文件,定义路由配置:将页面组件(比如 Home.vue 和 User.vue)和路径进行映射。为了实现嵌套路由,我们还创建了一个主页面组件 Main.vue,里面写一个 <router-view /> 用作子路由的出口。

接着,我们在 main.js 中引入 router 实例,并挂载到 Vue 根实例中。App.vue 是整个项目的入口,我们在其中放置一级路由出口 <router-view />。这样,当页面加载时,会首先加载主路由 Main.vue,而 Main.vue 中的 router-view 再根据子路由显示不同的子页面,比如 Home 或 User。这样可以实现主组件不变,子内容切换的效果,适合后台管理系统或者页面框架结构中常见的主-子布局。

总结来说:我们通过安装路由、配置组件映射、创建并暴露路由实例、在 main.js 挂载、App.vue 设置一级出口、Main.vue 写嵌套路由出口,从而完成一个主组件保持不变、子组件动态切换的嵌套路由页面结构

相关文章:

  • 多账号管理与自动化中的浏览器指纹对抗方案
  • LSTM的简单模型
  • 22、城堡防御工事——React 19 错误边界与监控
  • Docker Compose 部署 MeiliSearch 指南
  • 【C】初阶数据结构14 -- 归并排序
  • 基于设备指纹识别的反爬虫技术:给设备办 “身份证”
  • vue3 全局注册自定义指令,input聚焦失焦展示对应值
  • NXP iMX8MP ARM 平台多屏幕克隆显示测试
  • kuka, fanuc, abb机器人和移动相机的标定
  • 对golang中CSP的理解
  • 学习记录:DAY28
  • 7.3.隐私合规
  • [春秋云镜] Brute4Road 仿真场景
  • 使用JMETER中的JSON提取器实现接口关联
  • ASP.NET中Tailspin Travel的UI层奥秘分析
  • 电机密集型工厂环境下的无线通信技术选型与优化策略
  • C++:书架
  • SPDK NVMe of RDMA 部署
  • 软考速通攻略之邪修提醒篇
  • 命名视图~
  • 江苏省人社厅党组书记、厅长王斌接受审查调查
  • 迪拜金融市场CEO:2024年市场表现出色,超八成新投资者来自海外
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式
  • 2025江西跨境电子商务发展交流会召开,探索行业发展新趋势
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓
  • 再有20余篇论文出现“妇科男患者”“前列腺女患者”,如何破除“水论文”灰产链?