SpringBoot+Vue项目(Vue3环境搭建 + 基础页面)

文章目录

1.项目基本介绍

image-20240318104512639

2.安装Node.js(SSM部分安装过)

image-20240318104814602

3.初始化前端工程

1.创建一个文件夹 springboot_vue

image-20240318105933769

2.创建vue项目
1.在刚才创建的文件夹下打开命令行,使用脚手架搭建项目

image-20240318110513628

这里如果提示 ‘vue’ 不是内部或外部命令,也不是可运行的程序,就是没有安装脚手架,还是有问题就是没有安装node.js

image-20240318121628933

2.选择手动配置

image-20240318110247123

3.选择三个

image-20240318110345553

4.选择vue3

image-20240318110608820

5.选择路由模式

image-20240318110656446

6.选择包管理方式

image-20240318110741007

7.保留这次设置

image-20240318110805459

8.为这次设置命名

image-20240318110851510

9.配置成功

image-20240318110946409

10.启动项目

image-20240318111235462

image-20240318111330680

4.使用IDEA打开项目

1.退出项目

image-20240318111456116

2.拖动刚才创建的项目到IDEA

image-20240318111555112

3.Vue基本执行流程

image-20240318112257148

4.配置使用npm方式启动

image-20240318112442676

5.启动项目

image-20240318112504944

image-20240318112457701

6.配置启动项目自动打开首页

image-20240318112729492

7.配置默认浏览器

image-20240318112852734

5.安装Element-Plus

1.官方文档

Element-Plus官方文档

2.指南-安装

image-20240318113124533

3.进行安装(IDEA命令行或者项目目录下打开cmd都可以)

image-20240318113251922

6.配置Vue的服务端口(防止端口冲突)

1.vue.config.js下配置

image-20240318113640370

2.配置启动端口代码
// 配置启动端口
module.exports = {
  devServer: {
    port: 9999
  }
}
3.启动,端口变成9999

image-20240318113759886

7.修改默认项目配置

1.App.vue

image-20240318114748396

<template>
  <div>

  </div>
</template>

<style>

</style>

2.HomeView.vue

image-20240318115002643

<template>
  <div>

  </div>
</template>

<script>
// import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'HomeView',
  components: {
    // HelloWorld
  }
}
</script>

3.删除HelloWorld.vue组件

image-20240318115122815

8.项目基本界面

1.src/components/Header.vue 编写组件
<template>
  <div style="height: 50px; line-height: 50px; border-bottom: 1px solid #ccc; display: flex">
    <div style="width: 200px; padding-left: 30px; font-weight: bold; color: dodgerblue">后台管理</div>
    <div style="flex: 1"></div>
    <div style="width: 100px">下拉框</div>
  </div>

</template>
<script>
export default {
  name: "Header"
}
</script>
<style>

</style>
2.src/App.vue 主页面引入组件
<template>
  <div>
    <Header></Header>
  </div>
</template>

<style>

</style>

<script>
  import Header from "@/components/Header.vue";
  export default {
    name: "Layout",
    components: {
      Header
    }
  }
</script>

image-20240318134027558

3.src/assets/css/global.css 创建全局样式css
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
4.src/main.js 引入全局样式

image-20240318134403244

5.src/main.js 引入Element-Plus

image-20240318134805165

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 引入全局css
import '@/assets/css/global.css'
// 引入element-plus
import ElementPlus from 'element-plus'
// 引入element-plus相关样式
import 'element-plus/dist/index.css'

// 使用组件
createApp(App).use(store).use(router).use(ElementPlus).mount('#app')

6.src/App.vue 引入一个Element-Plus组件测试

image-20240318134952145

image-20240318135004981

7.src/components/Header.vue 设置Header的下拉框
<template>
  <div style="height: 50px; line-height: 50px; border-bottom: 1px solid #ccc; display: flex">
    <div style="width: 200px; padding-left: 30px; font-weight: bold; color: dodgerblue">后台管理</div>
    <div style="flex: 1"></div>
    <div style="width: 100px">
      <el-dropdown>
    <span class="el-dropdown-link">
      tom
      <el-icon class="el-icon--right">
        <arrow-down/>
      </el-icon>
    </span>
        <template #dropdown>
          <el-dropdown-menu>
            <el-dropdown-item>个人信息</el-dropdown-item>
            <el-dropdown-item>退出登录</el-dropdown-item>
          </el-dropdown-menu>
        </template>
      </el-dropdown>
    </div>
  </div>

</template>
<script>
export default {
  name: "Header"
}
</script>
<style>

</style>

image-20240318135800508

8.src/components/Aside.vue 编写侧边栏组件
<script>
  export default {
    name: "Aside"
  }
</script>

<template>
  <!--  引入导航菜单-->
  <div>
    <el-menu style="width: 200px"
             default-active="2"
             class="el-menu-vertical-demo"
    >
      <el-menu-item index="1">
        <el-icon><icon-menu /></el-icon>
        <span>导航一</span>
      </el-menu-item>
      <el-menu-item index="2">
        <el-icon><icon-menu /></el-icon>
        <span>导航二</span>
      </el-menu-item>
      <el-menu-item index="3" disabled>
        <el-icon><document /></el-icon>
        <span>导航三</span>
      </el-menu-item>
      <el-menu-item index="4">
        <el-icon><setting /></el-icon>
        <span>导航四</span>
      </el-menu-item>
    </el-menu>  </div>
</template>

<style>

</style>
9.src/App.vue 将页面分为三个部分并引入侧边栏组件
<template>
  <div>
    <!--      头部-->
    <Header></Header>
    <!--      主体弹性布局-->
    <div style="display: flex">
      <!--        侧边栏-->
      <Aside/>
      <!--        路由弹性布局-->
      <router-view style="flex: 1"/>
    </div>
  </div>
</template>

<style>

</style>

<script>
import Header from "@/components/Header.vue";
import Aside from "@/components/Aside.vue";

export default {
  name: "Layout",
  components: {
    Aside,
    Header
  }
}
</script>

image-20240318142535923

10.src/views/HomeView.vue 引入表格组件
<template>
  <div>
    <el-table :data="tableData" stripe style="width: 100%">
      <!--      把width去掉,就会自适应-->
      <el-table-column prop="date" label="日期"/>
      <el-table-column prop="name" label="名字"/>
      <el-table-column prop="address" label="地址" />
    </el-table>
  </div>
</template>

<script>

export default {
  name: 'HomeView',
  components: {},
  //增加一个data,单项绑定tableData
  data() {
    return {
      tableData: [
        {
          date: '2016-05-03',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-02',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-04',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
        {
          date: '2016-05-01',
          name: 'Tom',
          address: 'No. 189, Grove St, Los Angeles',
        },
      ]
    }
  }
}
</script>

image-20240318143409112

11.src/main.js 国际化

image-20240318143812670

image-20240318143751567

12.src/views/HomeView.vue 表格排序

image-20240318144016523

13.src/views/HomeView.vue 为表格添加固定列

image-20240318144300797

      <!--在表格的最后一列加入两个超链接-->
      <el-table-column fixed="right" label="操作" width="100">
        <template #default="scope">
          <!--          插槽机制,点击编辑会将本行的信息传到handleEdit中-->
          <el-button @click="handleEdit(scope.row)" type="text">编辑</el-button>
          <el-button type="text">删除</el-button>
        </template>
      </el-table-column>

方法池编写一个空方法

  methods: {
    handleEdit() {
      alert(11)
    }
  }

image-20240318145113500

14.src/views/HomeView.vue 添加搜索框和按钮

image-20240318145323878

    <!--增加按钮和搜索框-->
    <!--magrin代表上下边距为10px,左右边距为5px-->
    <div style="margin: 10px 5px">
      <el-button type="primary">新增</el-button>
      <el-button>其他</el-button>
    </div>
    <!--再增加一个搜索框并设置边距-->
    <div style="margin: 10px 5px">
      <!--搜索框,双向绑定一个search-->
      <el-input v-model="search" style="width: 30%" placeholder="请输入关键字"/>
      <el-button type="primary">查找</el-button>
    </div>

数据池双向绑定搜索框

image-20240318145619149

image-20240318145440452

15.小结

image-20240318150102772

相关推荐

  1. vue项目---1.基础的框架

    2024-03-18 22:16:01       31 阅读
  2. vue3项目企业级

    2024-03-18 22:16:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 22:16:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 22:16:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 22:16:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 22:16:01       18 阅读

热门阅读

  1. kali wpscan 命令

    2024-03-18 22:16:01       21 阅读
  2. 自动部署SSL证书到阿里云腾讯云CDN

    2024-03-18 22:16:01       19 阅读
  3. 【CSP考点回顾】C++标准库加速输入输出

    2024-03-18 22:16:01       21 阅读
  4. 通过Https请求可以返回哪些数据?

    2024-03-18 22:16:01       18 阅读
  5. playwright test打开新的浏览器窗口和关闭当前窗口

    2024-03-18 22:16:01       16 阅读
  6. C语言基础知识笔记

    2024-03-18 22:16:01       18 阅读
  7. 字节一面二面三面四面

    2024-03-18 22:16:01       26 阅读
  8. 大模型在自动驾驶决策系统中的前沿应用

    2024-03-18 22:16:01       20 阅读
  9. kafka什么情况下会认为发送失败进而去重试

    2024-03-18 22:16:01       20 阅读
  10. 【力扣】75.颜色分类

    2024-03-18 22:16:01       18 阅读
  11. 机械产品CE-MD认证测试项目介绍

    2024-03-18 22:16:01       22 阅读