当前位置: 首页 > 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.dtcms.com/a/314181.html

相关文章:

  • 数据从mysql迁移到postgresql
  • Petalinux快捷下载
  • 项目一:Python实现PDF增删改查编辑保存功能的全栈解决方案
  • WPF 按钮背景色渐变
  • LLM开发——基于Graph RAG知识图谱检索增强生成
  • steam Rust游戏 启动错误,删除sys驱动,亲测有效。
  • MySQL 约束知识体系:八大约束类型详细讲解
  • Spring Cloud Gateway 实现登录校验:构建统一认证入口
  • 网站从HTTP升级到HTTPS网址方法
  • AWS Lambda Function 全解:无服务器计算
  • 力扣top100--哈希
  • AWS VPC Transit Gateway 可观测最佳实践
  • 【MySQL】配置复制拓扑
  • Qt 商业应用开发流程与规范
  • 【Pytorch✨】LSTM03 三大门
  • 飞算科技:用自主创新技术,为行业数字化转型按下 “加速键”
  • Selenium教程(Python 网页自动化测试脚本)
  • 补:《每日AI-人工智能-编程日报》--2025年7月31日
  • 每日一leetcode:移动零
  • 服务器的Mysql 集群技术
  • IDA9.1使用技巧(安装、中文字符串显示、IDA MCP服务器详细部署和MCP API函数修改开发经验)
  • 主要 bug/问题 以及 修改建议:
  • 【Linux】System V - 基于建造者模式的信号量
  • Go语言流式输出技术实现-服务器推送事件(Server-Sent Events, SSE)
  • Git 与 GitHub 协作
  • BackgroundTasks 如何巧妙驾驭多任务并发?
  • 9. Linux 交换空间管理
  • [GESP202306 四级] 2023年6月GESP C++四级上机题超详细题解,附带讲解视频!
  • 事件(二)实战案例
  • Do-Calculus:因果推断的演算基础与跨领域应用