谷粒商城实战-58-商品服务-API-三级分类-删除-批量删除小结

文章目录

  • 一,增加一个批量删除的按钮并绑定事件
  • 二,全栈工程师
  • 三,逆向工程在全栈开发中的应用
    • 提升效率的方式:
    • 使用案例:

这一节的主要内容是开发批量删除分类的功能。

一,增加一个批量删除的按钮并绑定事件

在这里插入图片描述

  <el-button type="danger" @click="batchDelete">批量删除</el-button>

为了使用el-tree的方法获取选中的节点,需要给el-tree一个引用属性ref

在这里插入图片描述

绑定的注册事件如下。

batchDelete() {// 1,获取被选中的结点var checkedNodes = this.$refs.tree.getCheckedNodes();if (checkedNodes.length === 0) {this.$message.error("请先选需要删除的分类");return;}// 2,将被选中的结点的catId接成一个数组,并作为参数,调用后端接口,删除这些结点var catIds = checkedNodes.map((node) => node.data.catId);this.$http({url: this.$http.adornUrl("/product/category/delete"),method: "post",data: this.$http.adornData(catIds, false),}).then(({ data }) => {if (data && data.code === 0) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {console.log("删除成功,关闭消息提示");this.getMenus(); // 重新获取数据},});} else {this.$message.error(data.msg);}});},

这段代码是一个用于批量删除选定节点的功能,它是在一个前端Vue.js应用中实现的。下面是对这段代码的详细解释:

  1. 获取被选中的结点:

    var checkedNodes = this.$refs.tree.getCheckedNodes();
    
    • this.$refs.tree 是一个对Vue组件内部元素或子组件的引用,在这里应该是指向了一个树形控件。
    • getCheckedNodes() 是这个树形控件的一个方法,用来获取所有被选中的节点。
  2. 检查是否有结点被选中:

    if (checkedNodes.length === 0) {this.$message.error("请先选需要删除的分类");return;
    }
    
    • 如果没有节点被选中,则通过 this.$message.error 显示一条错误消息,并返回,不执行后续操作。
  3. 提取选中结点的ID:

    var catIds = checkedNodes.map((node) => node.data.catId);
    
    • map 方法用于遍历 checkedNodes 数组,并为每个节点提取 catId 属性。catId 假设是节点数据中的一个属性,表示类别ID。
  4. 发送HTTP请求删除结点:

    this.$http({url: this.$http.adornUrl("/product/category/delete"),method: "post",data: this.$http.adornData(catIds, false),
    }).then(({ data }) => {// ...
    });
    
    • 使用 $http 发送一个POST请求到 /product/category/delete URL,用于删除指定的类别。
    • this.$http.adornUrlthis.$http.adornData 可能是自定义的方法,用于处理URL和数据,比如添加一些额外的信息或者格式化数据。
    • catIds 被传递给 adornData 方法作为数据体。
  5. 处理响应结果:

    • 如果服务器返回的状态码是 0,则认为操作成功,并显示一条成功消息。
    if (data && data.code === 0) {this.$message({message: "操作成功",type: "success",duration: 1500,onClose: () => {console.log("删除成功,关闭消息提示");this.getMenus(); // 重新获取数据},});
    } else {this.$message.error(data.msg);
    }
    
    • 成功消息会在1.5秒后自动关闭,并调用 this.getMenus 方法重新获取数据。
    • 如果返回的状态码不是 0,则显示一条错误消息,其中 data.msg 应该包含了具体的错误信息。

二,全栈工程师

全栈工程师的工作内容通常涵盖了从前端用户界面开发到后端服务器逻辑与数据库管理的整个软件开发过程。具体来说,他们的职责可能包括但不限于以下几个方面:

  1. 前端开发:

    • 开发和维护网站的用户界面(UI)和用户体验(UX)。
    • 使用HTML、CSS、JavaScript等技术构建响应式和交互式的网页。
    • 集成前端框架和库,如React、Angular或Vue.js。
  2. 后端开发:

    • 设计和实现服务器端逻辑。
    • 开发RESTful API接口。
    • 数据库设计、优化查询性能。
    • 使用Node.js、Python、Java、Ruby等语言编写后端服务。
  3. 系统架构:

    • 设计可扩展的应用程序架构。
    • 选择合适的技术栈和技术方案。
  4. 测试与部署:

    • 编写自动化测试脚本。
    • 执行单元测试、集成测试和系统测试。
    • 部署应用程序到生产环境。
  5. 持续集成/持续部署 (CI/CD):

    • 实施持续集成流程。
    • 使用Docker容器化应用。
    • 配置自动化部署管道。
  6. 安全性:

    • 实现安全措施来保护应用程序免受攻击。
    • 加密敏感数据。
    • 遵守数据保护法规。
  7. 性能优化:

    • 优化前端加载速度和用户体验。
    • 优化数据库查询和缓存策略。
    • 监控应用性能并进行调优。
  8. 故障排查与维护:

    • 解决生产环境中出现的问题。
    • 维护现有系统并修复bug。

接下来,我们来谈谈逆向工程如何帮助全栈工程师提升效率,特别是在根据数据库表结构生成前后端代码的场景下:

三,逆向工程在全栈开发中的应用

逆向工程在这个上下文中指的是从现有的数据库表结构生成相应的前后端代码。这可以通过一些工具或框架实现,例如通过数据库映射工具来生成实体类、数据访问层、前端表格等。这种方法可以显著减少开发时间,因为很多基础性的代码不需要手动编写。

提升效率的方式:

  1. 减少重复工作:

    • 自动生成的代码可以避免手动编写常见的CRUD操作,减少开发人员的工作量。
    • 自动化的表单和页面布局减少了前端开发的时间。
  2. 快速原型制作:

    • 快速生成基本功能的原型,便于团队进行讨论和迭代。
    • 更快地展示给客户或利益相关者,以获得反馈。
  3. 一致性:

    • 生成的代码遵循一致的编码风格和标准,有助于保持项目的整洁性和可维护性。
  4. 易于修改和扩展:

    • 生成的基础代码可以轻松地进行修改以适应特定需求。
    • 通过添加自定义逻辑来扩展功能。
  5. 文档和注释:

    • 自动生成的代码通常会附带基本的注释和文档,有助于新加入团队的成员更快地上手。
  6. 错误减少:

    • 由工具生成的代码通常比手工编写的代码更少出错。
    • 代码生成器可以帮助遵守最佳实践和编码规范。

使用案例:

  • 后端服务:

    • 从数据库表结构生成对应的模型类(Model)、数据访问对象(DAO)、服务层(Service)等。
    • 自动生成RESTful API接口。
  • 前端应用:

    • 生成基于数据库表的表单和列表视图。
    • 创建响应式用户界面,与后端API对接。

通过这种方式,逆向工程不仅能够提高开发效率,还能确保代码质量和项目的一致性。然而,值得注意的是,虽然逆向工程可以提供很好的起点,但开发人员仍然需要根据实际业务需求对生成的代码进行调整和完善。

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

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

相关文章

zh echarts样式

记录一下&#xff1a; 一个图的配置 在echarts官网demo界面 option {title: {text: },legend: {data: [xxx前, xxx后]},radar: {// shape: circle,name: {// 雷达图各类别名称文本颜色textStyle: {color: #000,fontSize: 16}},indicator: [{ name: 完整性, max: 1 },{ name:…

【无标题】shell脚本的基本命令+编写shell脚本

shell脚本 一.shell基础 1.shell概念 2.shell脚本 3.shell脚本编写注意事项 二.编写shell脚本 1.编写一个helloworld脚本&#xff0c;运行脚本 [rootshell ~]# vim helloworld.sh #!/bin/bash //声明 echo "hello world!" ls -lh /etc/ 运行脚本(四种方式)&…

C语言字符函数与字符串函数超详解

文章目录 前言1. 字符分类函数2. 字符转换函数3. strlen3. 1 strlen 的使用3. 2 strlen 的模拟实现 4. strcpy4. 1 strcpy 的使用4. 2 strcpy 的模拟实现 5. strcat5. 1 strcat 的使用5. 2 strcat 的模拟实现 6. strcmp6. 1 strcmp 的使用6. 2 strcmp 的模拟实现 7. strncpy 函…

VI/VIM编辑器及三种模式

目录 1. 三种模式 2. 使用 VIM 3. i/ a/ o 进入输入模式 VI/VIM是 visual interface 的缩写是 Linux 中最经典的文本编辑器&#xff1b; VIM是 VI 的增强版本&#xff0c;兼容 VI 的所有指令&#xff0c;不仅能够编辑文本&#xff0c;还具有 shell 程序编辑的功能&#xff…

maven引入了jar包但在class文件里找不到jar包里的类

在工作当中遇到的这个问题&#xff0c;别人引入的jar包&#xff0c;我代码里报错 maven clean 和 maven install 都不管用 检查过了pom文件 检查了maven仓库路径下是否有这个cn.hutool的jar包 都没有找到问题 最终解决办法是手动引入 步骤一&#xff1a;点击左上角file->…

3.4-GRU

1网络结构 1.1与LSTM相比 LSTM里面有三个门&#xff0c;还有一个增加信息的tanh单元&#xff0c;参数量相较于RNN显著增加&#xff1b; 因此GRU在参数上比LSTM要少&#xff1b; 另外&#xff0c;LSTM 将必要信息记录在记忆单元中&#xff0c;并基于记忆单元的信息计算隐藏状…

MySQL数据库(基础篇)

&#x1f30f;个人博客主页&#xff1a;心.c 前言&#xff1a;今天讲解的是MySQL的详细知识点的&#xff0c;希望大家可以收货满满&#xff0c;话不多说&#xff0c;直接开始搞&#xff01; &#x1f525;&#x1f525;&#x1f525;文章专题&#xff1a;MySQL &#x1f63d;感…

1.c#(winform)编程环境安装

目录 安装vs创建应用帮助查看器安装与使用&#xff08; msdn&#xff09; 安装vs 安装什么版本看个人心情&#xff0c;或者公司开发需求需要 而本栏全程使用vs2022进行开发c#&#xff0c;着重讲解winform桌面应用开发 使用***.net framework***开发 那先去官网安装企业版的vs…

AI绘画入门实践 | Midjourney:使用 --chaos 给图像风格来点惊喜

在 Midjourney 中&#xff0c;--chaos 影响初始图像网格的多样性&#xff0c;指 MJ 每次出的4张图之间的差异性。 默认值为0&#xff0c;值越高&#xff0c;差异性越大。 使用格式&#xff1a;--chaos 0-100的整数值 使用演示 a lot of flowers --chaos 0 --v 6.0a lot of fl…

项目打包与运行

前端运行时必须有与后端相同的数据库版本&#xff0c;数据库账号密码 右侧maven -> 展开要打包的项目 -> 生命周期 -> 双击package 打包好之后在target目录下 右键打开 在资源目录下输入cmd&#xff0c;执行以下命令即可运行&#xff08;端口号为yml文件…

Redis实战篇(黑马点评)笔记总结

一、配置前后端项目的初始环境 前端&#xff1a; 对前端项目在cmd中进行start nginx.exe&#xff0c;端口号为8080 后端&#xff1a; 配置mysql数据库的url 和 redis 的url 和 导入数据库数据 二、登录校验 基于Session的实现登录&#xff08;不推荐&#xff09; &#xf…

【iOS】—— retain\release实现原理和属性关键字

【iOS】—— retain\release实现原理和属性关键字 1. retain\reelase实现原理1.1 retain实现原理1.2 release实现原理 2. 属性关键字2.1 属性关键字的分类2.2 内存管理关键字2.2.1 weak2.2.2 assgin2.3.3 strong和copy 2.4 线程安全的关键字2.5 修饰变量的关键字2.5.1常量const…

文件上传总结

一、原理 通过界面上的上传功能上传了一个可执行的脚本文件&#xff0c;而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好&#xff0c;使得恶意用户可以通过文件中上传的一句话木马获得操控权 二、绕过方法 1>前端绕过 1.删除前端校验函数 checkFile() 2.禁用js…

大数据平台之HBase

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;是Apache Hadoop生态系统的重要组成部分。它特别适合大规模结构化和半结构化数据的存储和检索&#xff0c;能够处理实时读写和批处理工作负载。以下是对HBase的详细介绍。 1. 核心概念 1.1 表&#x…

打造一篇完美的【数学建模竞赛论文】:从准备到撰写的全面指南

目录 一、赛前准备 1.1 报名与纪律要求 1.2 MD5码上传 1.3 竞赛准备 1.4 时间分配 二、论文格式规范 2.1 摘要 2.2 参考文献 2.3 排版要求 三、建模过程与方法 3.1 问题分析与模型假设 3.2 模型构建与求解 3.3 结果分析与检验 四、论文撰写技巧 4.1 论文结构 4…

Godot入门 07 世界构建2.0

添加基础节点Node&#xff0c;重命名为Coins&#xff0c;整理场景树&#xff0c;拖动Coin到Coins节点下。 添加基础节点Node&#xff0c;重命名为Platforms&#xff0c;整理场景树&#xff0c;拖动Platform到Platforms节点下。 添加游戏背景 设置当前图层名称为Mid 添加图层元…

飞牛爬虫FlyBullSpider 一款简单方便强大的爬虫,限时免费 特别适合小白!用它爬下Boss的2024年7月底Java岗位,分析一下程序员就业市场行情

一、下载安装FlyBullSpider 暂时支持Window,现在只在Win11上做过测试 1 百度 点击百度网盘 下载 链接&#xff1a;https://pan.baidu.com/s/1gSLKYuezaZgd8iqrXhk8Kg 提取码&#xff1a;Fly6 2 csdn https://download.csdn.net/download/fencer911/89584687 二、体验初…

vue3 vxe-table 点击行,不显示选中状态,加上设置isCurrent: true就可以设置选中行的状态。

1、上个图&#xff0c;要实现这样的&#xff1a; Vxe Table v4.6 官方文档 2、使用 row-config.isCurrent 显示高亮行&#xff0c;当前行是唯一的&#xff1b;用户操作点击选项时会触发事件 current-change <template><div><p><vxe-button click"sel…

C++入门基础(超详细) 需:C语言基础

1.C的发展史 大致了解一下 C的起源可以追溯到1979年&#xff0c;当时BjarneStroustrup(本贾尼斯特劳斯特卢普&#xff0c;这个翻译的名字不 同的地方可能有差异)在贝尔实验室从事计算机科学和软件工程的研究工作。面对项目中复杂的软件开 发任务&#xff0c;特别是模拟和操作系…

Linux权限维持篇

目录 SSH后门 &#xff08;1&#xff09;软链接sshd &#xff08;2&#xff09;SSH Key 生成公私钥 创建个authorized_keys文件来保存公钥 通过修改文件时间来隐藏authorized_keys &#xff08;3&#xff09;SSH Keylogger&#xff08;记录日志&#xff09; Linux的PA…