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

Vue Router快速入门

1、什么是Vue Router

客户端路由的作用是在单页应用 (SPA) 中将浏览器的 URL 和用户看到的内容绑定起来。当用户在应用中浏览不同页面时,URL 会随之更新,但页面不需要从服务器重新加载。

2、组成

3、快速使用

这里在项目创建的时候就勾选Vue Router,这样我们只需在main.js稍许配置即可,下面奉上完整版main.js代码:(EP,Axios,Router,EP标签,EP中文)EP:Element Plus   

import { createApp } from 'vue'import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'import './assets/main.css'const app = createApp(App)app.use(router)
app.use(ElementPlus, {locale: zhCn})
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component)
}app.mount('#app')

正常情况下,我们需要使用<router-link>进行包裹,如码:

            <router-link to="/index"><el-menu-item index="/index"><el-icon><Promotion /></el-icon>首页</el-menu-item></router-link>

若是我们使用了Element Plus中的el menu菜单,根据EP官方文档:

因此,我们只需在<el-menu>标签中加上router属性并设置为true,并在<el-menu-item>标签中加上index属性,如码:

          <el-menu router="true"><!-- 首页菜单 --><el-menu-item index="/index"><el-icon><Promotion /></el-icon>首页</el-menu-item></el-menu>

(1)想要页面显示的区域加上<router-view>标签

        <!--        主要区域--><el-main><router-view></router-view></el-main>

(2)配置router中的index.js(后面还需改进嵌套路由)

import { createRouter, createWebHistory } from "vue-router";import IndexView from "@/views/index/index.vue";
import ClazzView from "@/views/clazz/index.vue";
import DeptView from "@/views/dept/index.vue";
import EmpView from "@/views/emp/index.vue";
import LogView from "@/views/log/index.vue";
import StuView from "@/views/stu/index.vue";
import EmpReportView from "@/views/report/emp/index.vue";
import StuReportView from "@/views/report/stu/index.vue";
import LayoutView from "@/views/layout/index.vue";
import LoginView from "@/views/login/index.vue";const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{ path: "/index", name: "index", component: IndexView },{ path: "/clazz", name: "clazz", component: ClazzView },{ path: "/dept", name: "DeptView", component: DeptView },{ path: "/emp", name: "EmpView", component: EmpView },{ path: "/log", name: "LogView", component: LogView },{ path: "/stu", name: "StuView", component: StuView },{ path: "/empReport", name: "EmpReportView", component: EmpReportView },{ path: "/stuReport", name: "StuReportView", component: StuReportView },{ path: "/login", name: "LoginView", component: LoginView },],
});export default router;

4、动态路由组件(rouer-view)嵌套路由

App.vue中:

<script setup></script><template><router-view></router-view>
</template><style scoped></style>

router.index.js中:(完全版)

import { createRouter, createWebHistory } from "vue-router";import IndexView from "@/views/index/index.vue";
import ClazzView from "@/views/clazz/index.vue";
import DeptView from "@/views/dept/index.vue";
import EmpView from "@/views/emp/index.vue";
import LogView from "@/views/log/index.vue";
import StuView from "@/views/stu/index.vue";
import EmpReportView from "@/views/report/emp/index.vue";
import StuReportView from "@/views/report/stu/index.vue";
import LayoutView from "@/views/layout/index.vue";
import LoginView from "@/views/login/index.vue";const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: "/",name: "",component: LayoutView,redirect: "/index", //重定向children: [{ path: "index", name: "index", component: IndexView },{ path: "clazz", name: "clazz", component: ClazzView },{ path: "stu", name: "stu", component: StuView },{ path: "dept", name: "dept", component: DeptView },{ path: "emp", name: "emp", component: EmpView },{ path: "log", name: "log", component: LogView },{ path: "empReport", name: "empReport", component: EmpReportView },{ path: "stuReport", name: "stuReport", component: StuReportView },],},{ path: "/login", name: "login", component: LoginView },],
});export default router;

http://www.lryc.cn/news/609460.html

相关文章:

  • 高精度实战:YOLOv11交叉口目标行为全透视——轨迹追踪×热力图×滞留分析(附完整代码)
  • 深度学习TR3周:Pytorch复现Transformer
  • 第三阶段—8天Python从入门到精通【itheima】-143节(pyspark实战——数据计算——flatmap方法)
  • 大型语言模型落地应用全景指南:微调、提示工程、多模态与企业级解决方案
  • Perl 面向对象编程深入解析
  • 如何计算卷积层的计算量?从参数到公式的详细推导
  • PPT自动化 python-pptx - 11 : 备注页 (Notes Slides)
  • JUCE VST AI 开源
  • 进程生命周期管理:从创建到终止的完整逻辑
  • 解锁高并发LLM推理:动态批处理、令牌流和使用vLLM的KV缓存秘密
  • Oracle ASH的手册
  • Git简易教程
  • javacc实现简单SQL解析器
  • JSqlParser学习笔记 快速使用JSqlParser
  • [特殊字符] Ubuntu 下 MySQL 离线部署教学(含手动步骤与一键脚本)
  • 虚拟机中查看和修改文件权限
  • SelectDB:新一代实时数仓的核心引擎与应用实战
  • Python day34
  • Druid学习笔记 03、Druid的AstNode类详解与其他产品测试体验
  • 阿里云-通义灵码:解锁云原生智能开发新能力,让云开发更“灵”~
  • 【Linux操作系统】简学深悟启示录:进程初步
  • [spring-cloud: @LoadBalanced @LoadBalancerClient]-源码分析
  • DevOps平台大比拼:Gitee、Jenkins与CircleCI如何选型?
  • 集成电路学习:什么是BLE Mesh低功耗蓝牙网络
  • AI产品经理手册(Ch6-8)AI Product Manager‘s Handbook学习笔记
  • Cursor国产平替重磅开源!离线研发AI助手,拒绝云端受制于人
  • 8位以及32位的MCU如何进行选择?
  • 苹果iOS应用ipa文件安装之前?为什么需要签名?不签名能用么?
  • Memcached 缓存详解及常见问题解决方案
  • 零售消费行业研究系列报告