基于Springboot+Vue的前后端分离的简单Demo案例(二)

前端搭建

Vue router 来动态构建左侧菜单

  • 导航1
    • 页面1
    • 页面2
  • 导航2
    • 页面3
    • 页面4
  • 导航3
    • 页面5
    • 页面6

在views目录下创建四个页面

PageOne.vue

<template>
  <h1>这是页面1</h1>
</template>
<script>
export default {
  name: "PageOne",
};
</script>
<style scoped></style>

配置路由:router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Book from '../views/Book.vue'
import PageOne from '@/views/PageOne.vue'
import PageTwo from '@/views/PageTwo.vue'
import PageThree from '@/views/PageThree.vue'
import PageFour from '@/views/PageFour.vue'
import Nav from '@/views/Nav.vue'
import APP from '../App'
Vue.use(VueRouter)

const routes = [
  {
    path: "/nav1",
    name: "导航1",
    component: Nav,
    children: [
      {
        path: "/nav1/pageOne",
        name: "页面1",
        component: PageOne
      },
      {
        path: "/nav1/pageTwo",
        name: "页面2",
        component: PageTwo
      }
    ]
  },
  {
    path: "/nav2",
    name: "导航2",
    component: Nav,
    children: [
      {
        path: "/nav2/pageThree",
        name: "页面3",
        component: PageThree
      },
      {
        path: "/nav2/pageFour",
        name: "页面4",
        component: PageFour
      }
    ]
  }
]

const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})

export default router

Nav.vue

<template>
  <div id="app">
    <el-container style="height: 500px; border: 1px solid #eee">
      <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
        <el-menu>
          <el-submenu index="1">
            <template slot="title"
              ><i class="el-icon-message"></i>导航一</template
            >
            <el-menu-item-group>
              <!-- <template slot="title">分组一</template> -->
              <el-menu-item index="1-1"
                ><router-link to="/nav1/pageOne"
                  >页面1</router-link
                ></el-menu-item
              >
              <el-menu-item index="1-2"
                ><router-link to="/nav1/pageTwo"
                  >页面2</router-link
                ></el-menu-item
              >
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
        <el-menu>
          <el-submenu index="2">
            <template slot="title"><i class="el-icon-menu"></i>导航二</template>
            <el-menu-item-group>
              <!-- <template slot="title">分组一</template> -->
              <el-menu-item index="2-1"
                ><router-link to="/nav2/pageThree"
                  >页面3</router-link
                ></el-menu-item
              >
              <el-menu-item index="2-2"
                ><router-link to="/nav2/pageFour"
                  >页面4</router-link
                ></el-menu-item
              >
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
        <el-menu>
          <el-submenu index="3">
            <template slot="title"
              ><i class="el-icon-setting"></i>导航三</template
            >
            <el-menu-item-group>
              <!-- <template slot="title">分组一</template> -->
              <el-menu-item index="3-1">页面5</el-menu-item>
              <el-menu-item index="3-2">页面6</el-menu-item>
            </el-menu-item-group>
          </el-submenu>
        </el-menu>
      </el-aside>
      <el-container>
        <el-header style="text-align: right; font-size: 12px">
          <el-dropdown>
            <i class="el-icon-setting" style="margin-right: 15px"></i>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>查看</el-dropdown-item>
              <el-dropdown-item>新增</el-dropdown-item>
              <el-dropdown-item>删除</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
          <span>王小虎</span>
        </el-header>
        <!-- 内容 -->
        <el-main>
          <router-view></router-view>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>
<style>
.el-header {
  background-color: #b3c0d1;
  color: #333;
  line-height: 60px;
}

.el-aside {
  color: #333;
}
</style>
<script>
export default {
  name: "App",
};
</script>

App.vue

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

<script>
export default {
  name: "App",
};
</script>

<style lang="scss"></style>

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import VueRouter from 'vue-router'
//ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import Vuex from 'vuex';
Vue.use(ElementUI);
Vue.use(VueRouter);
Vue.use(Vuex);

Vue.prototype.axios = axios;
Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

页面展示:

后端代码同上篇:基于Springboot+Vue的前后端分离的简单Demo案例(一)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/486651.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java String类深入了解JDK各个版本进阶版本

Java String类深入了解JDK各个版本进阶版本 一&#xff0c;底层类型 在jdk11中 String value 存储字符串值 是byte[] 数组 &#xff0c;String中存储字节码的是coder 也是byte类型&#xff0c;因此String的底层数据存储类型成为了byte类型 而在jdk8中String 的String value 存…

shell编程-jq命令详解

文章目录 前言一、jq简介1. 简介2. 语法3. 命令选项 二、用于处理json数据1. 过滤1.1 标识运算符1.2 基本过滤1.3 获取对象属性1.3 迭代数组元素1.4 获取数组元素1.5 使用运算符 2. 类型和值2.1 数组构造2.2 对象构造2.3 递归下降 3. 内置运算符和函数3.1 算术运算符3.2 函数3.…

Makefile的override

今天在编译opengauss extension时遇到一个报错&#xff1a; 简单的理解就是编译时要加 -fPIC&#xff0c;告诉编译器生成Position Independent Code&#xff0c;试过 make CPPFLAGS-fPIC 可以成功编译&#xff0c;不过看到其它的解决方案是在Makefile中加 override CPPFLAG…

代码随想录算法训练营第三十天 | 332.重新安排行程,51. N皇后 ,37. 解数独

这道题是一道欧拉路径/ 欧拉回路的一笔画问题&#xff0c;需要找出开销最小的一笔画方案 这种一笔画的问题&#xff0c;以前学数据结构的时候我们习惯把图放进二维数组中存储&#xff0c;但对于这种无规律的图结构&#xff0c;我们可以使用二维的哈希表来存储&#xff0c;这样…

【4月】CDA Club 第2期数据分析组队打卡学习活动开启!

活动名称 CDA Club 第2期数据分析组队打卡学习活动 活动介绍 本次打卡活动由CDA俱乐部旗下学术部主办。目的是通过数据分析科普内容&#xff0c;为数据分析爱好者提供学习和交流的机会。方便大家利用碎片化时间在线学习&#xff0c;以组队打卡的形式提升学习效果&#xff0c…

水离子雾化壁炉的原理和技术解析

水离子雾化壁炉采用超声波雾化技术将水分子雾化成微细的水离子&#xff0c;然后通过风扇吹出再经过UVC紫外线杀菌产生安全仿真的火焰效果。以下是水离子雾化壁炉的原理和技术解析&#xff1a; 超声波雾化技术&#xff1a; 水离子雾化壁炉利用超声波振动器产生高频振动&#xf…

[Java、Android面试]_13_map、set和list的区别

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&#xff0c;后续会陆续分享出来&#xff0c;感兴趣的朋友可关注收…

TSN协议原理!看完这一篇就够了(1)——时钟同步IEEE802.1AS-2020

▎前言 在许多应用场景中&#xff0c;一个本地局域网中互联的设备集群需要共享同一个时间&#xff0c;以支持各设备的协同工作。例如&#xff1a;音频设备与视频设备的配合播放&#xff0c;雷达与摄像头的数据融合等&#xff1b;这样一个看似简单的域功能&#xff0c;细化成为…

好书推荐 :《 提问的艺术:让 ChatGPT 给出高质量答案 》

AGI 时代降临&#xff01;还不知如何向 ChatGPT 提问&#xff1f; 恰当的提示至关重要&#xff01;《提问的艺术—让 ChatGPT 给出高质量答案》一书&#xff0c;共 24 章&#xff0c;系统介绍了如何向 ChatGPT 提问以获取优质答案&#xff0c;是 ChatGPT 时代的入门指南&#x…

【 Mysql8.0 忘记登录密码 可以试试 】

** Mysql8.0 忘记登录密码 可以试试 ** 2024-3-21 段子手168 1、首先停止 mysql 服务 &#xff0c;WIN R 打开运行&#xff0c;输入 services.msc 回车打开服务&#xff0c;找到 mysql 服务&#xff0c;停止。 然后 WIN R 打开运行&#xff0c;输入 CMD 打开控制台终端输…

‘npm‘ 不是内部或外部命令,也不是可运行的程序

npm认识三年了&#xff0c;今天才知道这是node.js的命令 也就是说&#xff0c;想要在cmd里面运行 npm 命令&#xff0c;但就的安装node.js 1. node.js安装 没有安装包的先下载安装包&#xff1a;下载 | Node.js 中文网 (nodejs.cn) 下载之后双击打开&#xff0c;一路安装确…

如何为企业策划一场XR虚拟直播?

活动年年办&#xff0c;都是老一套&#xff0c;想玩点新花样&#xff1f; 预算有限&#xff0c;但还是想把活动办的逼格高一点&#xff1f; 想通过活动&#xff0c;让更多的人知道自己企业的品牌&#xff1f; 随着AIGC技术的不断演变&#xff0c;企业活动的形式和内容也在不…

Node.js之沙盒专题

​ Node.js一直是薄弱项&#xff0c;今天特意整理一下&#xff0c;基本上是各个大佬写的大杂烩&#xff0c;仅用于学习记录~~~ 1. child_process 首先介绍一下nodejs中用来执行系统命令的模块child_process。Nodejs通过使用child_process模块来生成多个子进程来处理其他事物…

滤波器自动化测试:用网络分析仪、示波器、功率计测量功率

滤波器的功率是电压与电流的乘积&#xff0c;滤波器的功率可以通过测量电压与电流计算得出。滤波器的功率对滤波器的稳定运行是至关重要的&#xff0c;如果功率过小可能会导致滤波器无法正常工作;功率越大则有可能会造成滤波器的损坏。因此滤波器的功率测量是非常重要的步骤。 …

基于51单片机的客车汽车安全气囊控制器Proteus仿真

地址&#xff1a;https://pan.baidu.com/s/10enj1EYm_0Z8f_19Sz_eCQ 提取码&#xff1a;1234 仿真图&#xff1a; 芯片/模块的特点&#xff1a; AT89C52简介&#xff1a; AT89C52是一款经典的8位单片机&#xff0c;是意法半导体&#xff08;STMicroelectronics&#xff09;公…

第一周周考技能

文章目录 1月1. 任意输入一个3位整数&#xff08;100~999&#xff0c;包含100与999&#xff09;&#xff0c;判断输入的整数是否是质数&#xff0c;如果是质数则输出是质数&#xff0c;否则输出不是质数2.“降序数”是指一个自然数的低位数字不大于高位数字的数。例如&#xff…

工单系统大揭秘!选择工单系统需注意的关键因素!

如何选择工单系统&#xff1f;工单系统作为数字化工具&#xff0c;可以帮助企业高效处理工单业务问题&#xff0c;助力企业数字化转型。目前市面上的工单系统可谓是琳琅满目。 本文详细讲解了目前市面上工单系统的主要类型&#xff0c;以及企业该如何选择工单系统~ 一、工单系…

怎样批量在文件名后面加上相同的字符?

怎样批量在文件名后面加上相同的字符&#xff1f;在日常工作中&#xff0c;有时我们需要对大量文件进行批量处理&#xff0c;比如在文件名后面统一添加相同的字符。这项工作可以通过编写简单的脚本或程序来实现&#xff0c;从而提高工作效率。批量在文件名后面加上相同的字符是…

JS-13-高阶函数

一、高阶函数的定义 JavaScript的函数其实都指向某个变量&#xff0c;如&#xff1a; var abs function (x) {// 函数体 }; 既然变量可以指向函数&#xff0c;函数的参数能接收变量&#xff0c;那么一个函数就可以接收另一个函数作为参数&#xff0c;这种函数就称之为高阶函…

CCF-CSP认证考试 202212-2 训练计划 100分题解

更多 CSP 认证考试题目题解可以前往&#xff1a;CSP-CCF 认证考试真题题解 原题链接&#xff1a; 202212-2 训练计划 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 问题背景 西西艾弗岛荒野求生大赛还有 n n n 天开幕&#xff01; 问题描述 为了在大赛中取得…