从0开始写Vue项目-Vue实现数据渲染和数据的增删改查

news2024/11/23 0:10:31
  1. 从0开始写Vue项目-环境和项目搭建_慕言要努力的博客-CSDN博客
  2. 从0开始写Vue项目-Vue2集成Element-ui和后台主体框架搭建_慕言要努力的博客-CSDN博客
  3. 从0开始写Vue项目-Vue页面主体布局和登录、注册页面_慕言要努力的博客-CSDN博客
  4. 从0开始写Vue项目-SpringBoot整合Mybatis-plus实现登录、注册功能_慕言要努力的博客-CSDN博客_mybatisplus登陆
  5.  从0开始写Vue项目-SpringBoot整合Mybatis-plus实现登录、注册功能_慕言要努力的博客-CSDN博客_mybatisplus登陆

一、前言

        在我们之前,我们已经实现了我们项目的登录、注册功能,然后我们也获取了我们数据库的数据,也写好了我们数据的增删改查,那么我们现在就来在我们的前端进行数据渲染,然后实现我们前端Vue的增删改查。

        我这里就拿用户数据来进行演示

二、数据渲染

 可以发现我们已经渲染出来我们数据库里面用户表所有的数据了。

        那么我们怎么来实现用户渲染呢?以及我们渲染出来的数据放在哪里存放?我们依然进行组件调用,我们可以在Element-ui里面找到我们的 el-table 来存放我们查找出来的数据。

        其实在我们之前进行页面布局的时候我们就已经进行了 el-table 的引用,只不过里面的数据全是静态的而已。那么我们现在就来将我们的静态数据来变成动态的数据。

然后我们要对数据进行存放在一个大的属性里面,然后通过属性来进行数据渲染。

 

        我们将数据存放在我们的 tableData 里面,然后进行调用就可以了。重点:我们渲染数据的名称必须跟我们后端类里面的方法命名一致。

<!--    数据渲染表单-->
    <el-table :data="tableData" border stripe :header-cell-class-name="headerBg"
              @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column prop="username" label="用户名" ></el-table-column>
      <el-table-column prop="nickname" label="昵称" ></el-table-column>
      <el-table-column prop="email" label="邮箱" ></el-table-column>
      <el-table-column prop="phone" label="联系方式" ></el-table-column>
      <el-table-column prop="address" label="地址"></el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button type="success" @click="handleEdit(scope.row)"><i class="el-icon-edit-outline" />编辑</el-button>
        </template>
      </el-table-column>
    </el-table>
data() {
    return {
      tableData: [],
      total: 0,
      pageNum: 1,
      pageSize: 5,
      username: "",
      form: {},
      dialogFormVisible: false,
      multipleSelection: [],
      headerBg: "headerBg",
      roles: []
    }
  },

三、数据增删改查

        我们分别命名2个方法,分别是新增 handleAdd 和删除 delBatch,然后我们进行我们接口的调用来实现我们的功能。 

<!--    新增和删除-->
    <div style="margin: 10px 0">
      <el-button type="primary" @click="handleAdd" class="ml-10"><i class="el-icon-circle-plus-outline" />新增</el-button>
      <el-popconfirm
          class="ml-5"
          confirm-button-text='确认'
          cancel-button-text='取消'
          icon="el-icon-info"
          icon-color="red"
          title="确定批量删除这些信息吗?"
          @confirm="delBatch">
        <el-button type="danger" slot="reference" ><i class="el-icon-remove-outline" />删除</el-button>
      </el-popconfirm>
    </div>

1.新增和编辑

        我们在新增的时候,会打开一个空的表单,然后在表单上面填写我们新增的数据,最后我们在点击确认按钮的时候,我们的表单会自己进行关闭。我们在编辑的时候,会自动获取用户数据渲染在我们的表单里面。

我们先来写我们的新增表单 el-dialog

<!--    新增或编辑的表单-->
    <el-dialog title="用户信息" :visible.sync="dialogFormVisible" width="30%">
      <el-form :model="form" label-width="100px" size="small">
        <el-form-item label="用户名" >
          <el-input v-model="form.username" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="昵称" >
          <el-input v-model="form.nickname" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="邮箱" >
          <el-input v-model="form.email" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="联系方式" >
          <el-input v-model="form.phone" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="地址" >
          <el-input v-model="form.address" autocomplete="off"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="save">确 定</el-button>
      </div>
    </el-dialog>

        然后填入我们的信息,点击确认关闭我们的保单,存放我们的数据在我们的数据库里面。

// 保存信息
    save() {
      this.request.post("/user", this.form).then(res => {
        if (res.code === '200') {
          this.$message.success("保存成功")
          this.dialogFormVisible = false
          this.load()
        } else {
          this.$message.error("保存失败")
        }
      })
    },

打开我们的表单 

 

// 新增
    handleAdd() {
      this.dialogFormVisible = true
      this.form = {}
    },
    // 编辑
    handleEdit(row) {
      this.form = row
      this.dialogFormVisible = true
    },

2.分页设置

分页功能我们依然是进行组建的调用

 

<!--    分页查询-->
    <div style="padding: 10px 0">
      <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="pageNum"
          :page-sizes="[ 5, 10, 15]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total">
      </el-pagination>
    </div>

然后我们要自定义我们的分页数据

 

return {
      tableData: [],
      total: 0,
      pageNum: 1,
      pageSize: 5,
      username: "",
      form: {},
      dialogFormVisible: false,
      multipleSelection: [],
      headerBg: "headerBg",
      roles: []
    }

3.数据删除

 我们在删除的时候进行二次确认,进行删除提示,看是否真的需要删除该数据。

<el-popconfirm
          class="ml-5"
          confirm-button-text='确认'
          cancel-button-text='取消'
          icon="el-icon-info"
          icon-color="red"
          title="确定批量删除这些信息吗?"
          @confirm="delBatch">
        <el-button type="danger" slot="reference" ><i class="el-icon-remove-outline" />删除</el-button>
      </el-popconfirm>

我们进行调用后端的多选删除接口,来进行单个或多个数据的删除。 

// 多选删除
    delBatch() {
      let ids = this.multipleSelection.map(v => v.id)  //[{}, {}, {}] => [1,2,3]
      this.request.post("/user/del/batch", ids).then(res => {
        if (res.code === '200') {
          this.$message.success("删除用户成功")
          this.load()
        } else {
          this.$message.error("删除用户失败")
        }
      })
    },

        当然,我们进行多个删除必然少不了我们的多选框了,所以我们在我们的数据渲染表格里面已经加上了多选框的方法。

// 多选框
    handleSelectionChange(val) {
      console.log(val)
      this.multipleSelection = val;
    },

4.数据查询

我们在这里是通过搜索用户的用户名进行查询,当然还可以有其他的条件进行数据查询。

<!--    搜索-->
    <div style="margin: 10px 0">
      <el-button class="ml-5" type="primary" @click="load"><i class="el-icon-search" />搜索</el-button>
    </div>

 

        我们在这里进行调用后端的page接口,就能查询所有的数据,且能通过username来进行用户信息的查询。

// 获取用户信息
    load: function () {
      this.request.get("/user/page", {
        params: {
          pageNum: this.pageNum,
          pageSize: this.pageSize,
          username: this.username,
        }
      }).then(res => {
        this.tableData = res.data.records
        this.total = res.data.total
      })
      this.request.get("/role").then(res => {
        this.roles = res.data
      })
    },

 功能展示

⛵小结

        以上就是对从0开始写Vue项目-Vue实现数据渲染和数据的增删改查简单的概述,之后会陆续更新后面的模块,包括后端代码,带大家手码项目,提升自己的编码能力。 

        如果这篇文章有帮助到你,希望可以给作者点个赞👍,创作不易,如果有对后端技术、前端领域感兴趣的,也欢迎关注 ,我将会给你带来巨大的收获与惊喜💝💝💝!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

element 下拉框支持搜索并输入

前言 下拉框对于开发来说再常见不过了&#xff0c;也是界面设计中的常用组件&#xff0c;在部分使用场景下&#xff0c;我们需要做到下拉框可以选择的同时&#xff0c;支持搜素和输入&#xff0c;以 element 的下拉框组件为例&#xff0c;当我们同时设置属性让其支持搜素和输入…

ssh的使用

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

蓝桥杯:统计子矩阵(十三届省赛C++组)

前言&#xff1a; 这道题目是矩阵类型题目经典题型&#xff0c;解题大体思路是前缀和双指针扫描&#xff0c;在我这篇博客中 第十三届蓝桥杯省赛CB组题解_第十三届蓝桥杯b组c答案_正在黑化的KS的博客-CSDN博客 简单提了一下大致解法&#xff0c;今天刷题时又遇到了一个极其相似…

利用Qgis进行WRF中土地利用数据的替换

一、地形数据来源&#xff1a;MCD12Q1_V006 1.1数据介绍&#xff1a; MODIS三级数据土地覆盖类型产品&#xff08;Land Cover data&#xff09;是根据一年的Terra和Aqua观测所得的数据经过处理&#xff0c;描述土地覆盖的类型&#xff0c;分辨率为500m。该土地覆盖数据集中包…

jdk、jre、jvm、javase、javaee

JDK Java开发工具包(Java Development Kit)。 开发者使用&#xff0c;里面除了JRE之外还包含java工具。 javac Java源程序编译器&#xff0c;将Java源代码转换成字节码。java Java解释器&#xff0c;直接从字节码文件&#xff0c;又称为类文件。执行Java应用程序的字节代码。…

运维必看|跨国公司几千员工稳定访问Office365,怎么实现?

【客户背景】本次分享的客户是全球传感器领域的领导者&#xff0c;其核心产品为电流和电压传感器&#xff0c;被广泛应用于驱动和焊接、可再利用能源以及电源、牵引、高精度、传统和新能源汽车等领域。 作为一家中等规模的全球化公司&#xff0c;该公司在北京、日本、西欧、东欧…

Spring事务管理(@Transactional使用)-官方原版

全面的事务支持是使用Spring的最令人信服的理由之一。 框架。Spring 框架为事务提供了一致的抽象 具有以下优势的管理&#xff1a;跨不同事务 API&#xff08;如 Java&#xff09;的一致编程模型 事务 API &#xff08;JTA&#xff09;、JDBC、Hibernate 和 Java Persistence A…

[docker]笔记-网络管理

1、docker网络原理 docker安装完成后&#xff0c;会在宿主机中创建一个虚拟网桥&#xff0c;用于容器之间和容器与外部网络的连接。虚拟网桥通常名称为docker0.可以使用ip link show命令进行查看&#xff1a; 在docker中&#xff0c;各个容器是通过这个docker0的虚拟网桥实现互…

IE自动跳转Edge?教你如何解决

本期看点&#xff1a; 最新windows10系统中, IE浏览器已经无法开启 取而代之是Edge浏览器 windows10默认不在安装IE浏览器 微软不在提供下载链接 而IE确实也存在一些安全隐患 大家非必要尽量避免使用IE浏览器 可选择使用Edge、Chrome、Firefox等 打开IE浏览器方式一&am…

laravel与workerman结合

安装workerman composer require workerman/workerman生成命令 php artisan make:command Workerman<?phpnamespace App\Console\Commands;use Illuminate\Console\Command; use Workerman\Worker;class Workerman extends Command {/*** The name and signature of the …

2022年度商业关键词调研报告(小红书美妆个护)

美妆个护&#xff0c;作为小红书最火热的领域之一&#xff0c;不断塑造流行新趋势&#xff0c;大量品牌在小红书孵化爆品&#xff0c;崛起破圈。回顾2022年&#xff0c;小红书美妆个护领域有哪些热门新趋势呢&#xff1f; 由此&#xff0c;千瓜推出《2022年度商业关键词调研报告…

机器学习-基于KNN及其改进的汉字图像识别系统

一、简介和环境准备 knn一般指邻近算法。 邻近算法&#xff0c;或者说K最邻近&#xff08;KNN&#xff0c;K-NearestNeighbor&#xff09;分类算法是数据挖掘分类技术中最简单的方法之一。而lmknn是局部均值k最近邻分类算法。 本次实验环境需要用的是Google Colab和Google Dr…

ASEMI高压MOS管60R380参数,60R380特征,60R380应用

编辑-Z ASEMI高压MOS管60R380参数&#xff1a; 型号&#xff1a;60R380 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;600V 栅源电压&#xff08;VGS&#xff09;&#xff1a;20V 漏极电流&#xff08;ID&#xff09;&#xff1a;11A 功耗&#xff08;PD&#x…

Python的PyQt框架的使用-资源文件夹的使用

Python的PyQt框架的使用-资源文件夹的使用一、前言二、Qt Designer加载资源文件三、资源文件的转换一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;小伙伴们&#xff0c;让我们一起来学习Python的PyQt框架的使用。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三…

win10怎么取消开机密码?电脑小白也可以轻松掌握的3种方法

为了保护隐私&#xff0c;我们大多喜欢给自己的电脑“上锁”&#xff0c;即设置开机密码。有时候&#xff0c;我们想要取消电脑的开机密码&#xff0c;却不知有什么方法可以帮到我们。win10怎么取消开机密码&#xff1f;方法有很多。 比如&#xff1a;通过运行来进入用户账户设…

Golang学习Day1

&#x1f60b; 大家好&#xff0c;我是YAy_17&#xff0c;是一枚爱好网安的小白。本人水平有限&#xff0c;欢迎各位大佬指点&#xff0c;欢迎关注 &#x1f601;&#xff0c;一起学习 &#x1f497; &#xff0c;一起进步 ⭐ 。⭐ 此后如竟没有炬火&#xff0c;我便是唯一的光…

GEE学习笔记 五十一:Fusion Table将在2019年12月3日关闭

刚刚看到的一则消息&#xff0c;Google运行了9年之久的Fusion Table将在2019年12月3日关闭相关服务&#xff0c;同时也就是未来Google Earth Engine&#xff08;GEE&#xff09;上将不会存在Fusion Table这一数据&#xff0c;GEE官方也不再建议用户使用Fusion Table数据。 目前…

anaconda:安装cuda和对应版本的cudnn

复现别人论文的时候经常遇到不同的cuda版本&#xff0c;可以使用anaconda创建虚拟环境&#xff0c;并在不同的虚拟环境中配置对应的cuda版本 1、安装anaconda及虚拟环境使用 Anaconda多个python版本&#xff08;python2.7 & python3.8&#xff09; 2、安装cuda和对应版本…

【机器学习】噪声数据的理解

文章目录一、噪声数据1.1 分箱1.2 回归1.3 聚类1.4 其他二、数据清理作为一个过程2.1 偏差检测2.1.1 使用“元数据”&#xff1a;关于数据的数据2.1.2 编码格式&#xff1a;存在使用不一致、数据表示不一致2.1.3 字段过载2.1.4 唯一性规则2.1.5 连续性规则2.1.6 空值规则2.2 数…

爆赞!首次公布阿里Java成长路线,Github访问量突破80万

作为程序员&#xff0c;进大厂是大多数人的梦想&#xff0c;进大厂的好处也如下图一样&#xff1a; 有面儿&#xff0c;不易失业。牛人多&#xff0c;培训多&#xff0c;成长更快。钱多。有较为完善的晋升规则。站在巨人肩膀人&#xff0c;眼界开阔更何况程序员不同于其他行业…