1.Vue-在独立页面实现Vue的增删改查

题记

        在独立页面实现Vue的增删改查,以下是具体的代码,和操作流程。

编写index.html页面

        index.html文件如下:

 

<!DOCTYPE html>
<html>
<head><title>Vue CRUD Example</title><!--在线导入vue文件--><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><meta charset="UTF-8">
</head>
<body><!--这是一个Vue应用的根元素,id为"app"。在这个元素中,你可以构建和渲染Vue组件,实现动态的交互和数据绑定。--><div id="app"><h1>学生列表</h1><!--通过v-model指令与Vue实例中的searchQuery属性进行双向数据绑定。在输入框中输入内容时,searchQuery属性的值会自动更新,反之亦然--><input type="text" v-model="searchQuery" placeholder="输入姓名进行查询"><table><thead><tr><th>姓名</th><th>年龄</th><th>操作</th></tr></thead><tbody><!--这是一个Vue的循环指令v-for,用于在表格中动态渲染学生列表。它会遍历filteredStudents数组中的每个元素,并为每个元素创建一个表格行。在每一行中,通过双花括号语法{{ student.name }}和{{ student.age }}来显示学生的姓名和年龄--><tr v-for="(student, index) in filteredStudents" :key="index"><td>{{ student.name }}</td><td>{{ student.age }}</td><td><!--这两个按钮都绑定了点击事件,当点击"编辑"按钮时,会调用editStudent方法,并传递当前学生的索引作为参数--><button @click="editStudent(index)">编辑</button><button @click="deleteStudent(index)">删除</button></td></tr></tbody></table><h2>添加/编辑学生</h2><!--通过@submit.prevent指令,阻止表单默认的提交行为,以便在调用saveStudent方法时进行自定义处理--><form @submit.prevent="saveStudent"><label>索引:</label><span>{{editingIndex}}</span>&nbsp<label>姓名:</label><!--通过v-model指令与Vue实例中的newStudent.name属性进行双向数据绑定--><input type="text" v-model="newStudent.name" required><label>年龄:</label><input type="number" v-model="newStudent.age" required><!--提交按钮的文本是根据editingIndex变量的值来确定的。如果editingIndex为null,表示当前是添加学生的操作,按钮文本为"添加";如果editingIndex不为null,表示当前是编辑学生的操作,按钮文本为"保存"。--><button type="submit">{{ editingIndex === null ? '添加' : '保存' }}</button></form></div><script>new Vue({el: '#app',//在data属性中,定义了一个名为students的数组,用于存储学生的信息data: {students: [{ name: 'ngxe', age: 18 },{ name: 'ng1', age: 20 },{ name: 'ng2', age: 22 }],// 还定义了一个newStudent对象,用于存储正在添加或编辑的学生的临时数据// editingIndex变量用于记录正在编辑的学生的索引。// searchQuery变量用于存储用户输入的查询关键字。newStudent: {name: '',age: ''},editingIndex: null,searchQuery: ''},// 在computed属性中,定义了一个名为filteredStudents的计算属性,// 它根据searchQuery的值对students数组进行过滤,// 如果searchQuery为空,则返回所有学生信息;否则,返回包含查询关键字的学生信息。computed: {filteredStudents() {if (this.searchQuery === '') {return this.students;} else {//使用Array的filter方法遍历students数组,并对每个学生对象的姓名进行判断//使用了箭头函数语法,表示对每个学生对象进行匿名函数的操作。//在函数体内部,使用了String的includes方法,//判断学生的姓名中是否包含了searchQuery属性的值(即用户输入的查询关键字)。//如果包含了,就将该学生对象保留在过滤后的数组中。return this.students.filter(student => {return student.name.includes(this.searchQuery);});}}},methods: {//saveStudent方法用于保存或更新学生信息。//通过判断editingIndex是否为null来确定当前是添加学生还是编辑学生的操作。//如果editingIndex为null,表示当前是添加学生的操作,将newStudent对象添加到students数组中。//如果editingIndex不为null,表示当前是编辑学生的操作,//将newStudent对象替换students数组中对应索引的学生信息。//将editingIndex重置为null,表示编辑操作已完成。//将newStudent对象重置为空对象,以清空输入框中的内容。saveStudent() {if (this.editingIndex === null) {// 添加学生this.students.push({ ...this.newStudent });} else {// 编辑学生this.students[this.editingIndex] = { ...this.newStudent };this.editingIndex = null;}this.newStudent = { name: '', age: '' };},//editStudent方法用于编辑学生信息。//当点击编辑按钮时,传入对应学生的索引作为参数。//在方法内部,将该学生的信息复制到newStudent对象中,以便在表单中显示出来。//同时,将editingIndex设置为该学生的索引,以标记当前正在编辑的学生。editStudent(index) {this.newStudent = { ...this.students[index] };this.editingIndex = index;},//在方法内部,使用splice方法从students数组中删除对应索引的学生信息。deleteStudent(index) {this.students.splice(index, 1);}}});</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head><title>Vue CRUD Example</title><!--在线导入vue文件--><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><meta charset="UTF-8">
</head>
<body><!--这是一个Vue应用的根元素,id为"app"。在这个元素中,你可以构建和渲染Vue组件,实现动态的交互和数据绑定。--><div id="app"><h1>学生列表</h1><!--通过v-model指令与Vue实例中的searchQuery属性进行双向数据绑定。在输入框中输入内容时,searchQuery属性的值会自动更新,反之亦然--><input type="text" v-model="searchQuery" placeholder="输入姓名进行查询"><table><thead><tr><th>姓名</th><th>年龄</th><th>操作</th></tr></thead><tbody><!--这是一个Vue的循环指令v-for,用于在表格中动态渲染学生列表。它会遍历filteredStudents数组中的每个元素,并为每个元素创建一个表格行。在每一行中,通过双花括号语法{{ student.name }}和{{ student.age }}来显示学生的姓名和年龄--><tr v-for="(student, index) in filteredStudents" :key="index"><td>{{ student.name }}</td><td>{{ student.age }}</td><td><!--这两个按钮都绑定了点击事件,当点击"编辑"按钮时,会调用editStudent方法,并传递当前学生的索引作为参数--><button @click="editStudent(index)">编辑</button><button @click="deleteStudent(index)">删除</button></td></tr></tbody></table><h2>添加/编辑学生</h2><!--通过@submit.prevent指令,阻止表单默认的提交行为,以便在调用saveStudent方法时进行自定义处理--><form @submit.prevent="saveStudent"><label>索引:</label><span>{{editingIndex}}</span>&nbsp<label>姓名:</label><!--通过v-model指令与Vue实例中的newStudent.name属性进行双向数据绑定--><input type="text" v-model="newStudent.name" required><label>年龄:</label><input type="number" v-model="newStudent.age" required><!--提交按钮的文本是根据editingIndex变量的值来确定的。如果editingIndex为null,表示当前是添加学生的操作,按钮文本为"添加";如果editingIndex不为null,表示当前是编辑学生的操作,按钮文本为"保存"。--><button type="submit">{{ editingIndex === null ? '添加' : '保存' }}</button></form></div><script>new Vue({el: '#app',//在data属性中,定义了一个名为students的数组,用于存储学生的信息data: {students: [{ name: 'ngxe', age: 18 },{ name: 'ng1', age: 20 },{ name: 'ng2', age: 22 }],// 还定义了一个newStudent对象,用于存储正在添加或编辑的学生的临时数据// editingIndex变量用于记录正在编辑的学生的索引。// searchQuery变量用于存储用户输入的查询关键字。newStudent: {name: '',age: ''},editingIndex: null,searchQuery: ''},// 在computed属性中,定义了一个名为filteredStudents的计算属性,// 它根据searchQuery的值对students数组进行过滤,// 如果searchQuery为空,则返回所有学生信息;否则,返回包含查询关键字的学生信息。computed: {filteredStudents() {if (this.searchQuery === '') {return this.students;} else {//使用Array的filter方法遍历students数组,并对每个学生对象的姓名进行判断//使用了箭头函数语法,表示对每个学生对象进行匿名函数的操作。//在函数体内部,使用了String的includes方法,//判断学生的姓名中是否包含了searchQuery属性的值(即用户输入的查询关键字)。//如果包含了,就将该学生对象保留在过滤后的数组中。return this.students.filter(student => {return student.name.includes(this.searchQuery);});}}},methods: {//saveStudent方法用于保存或更新学生信息。//通过判断editingIndex是否为null来确定当前是添加学生还是编辑学生的操作。//如果editingIndex为null,表示当前是添加学生的操作,将newStudent对象添加到students数组中。//如果editingIndex不为null,表示当前是编辑学生的操作,//将newStudent对象替换students数组中对应索引的学生信息。//将editingIndex重置为null,表示编辑操作已完成。//将newStudent对象重置为空对象,以清空输入框中的内容。saveStudent() {if (this.editingIndex === null) {// 添加学生this.students.push({ ...this.newStudent });} else {// 编辑学生this.students[this.editingIndex] = { ...this.newStudent };this.editingIndex = null;}this.newStudent = { name: '', age: '' };},//editStudent方法用于编辑学生信息。//当点击编辑按钮时,传入对应学生的索引作为参数。//在方法内部,将该学生的信息复制到newStudent对象中,以便在表单中显示出来。//同时,将editingIndex设置为该学生的索引,以标记当前正在编辑的学生。editStudent(index) {this.newStudent = { ...this.students[index] };this.editingIndex = index;},//在方法内部,使用splice方法从students数组中删除对应索引的学生信息。deleteStudent(index) {this.students.splice(index, 1);}}});</script>
</body>
</html>

打开页面 

         可以使用vscode的live server打开页面

        

 展示图

 

 

 

后记 

        觉得有用可以点赞或收藏!

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

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

相关文章

Linux系统之ip命令的基本使用

Linux系统之ip命令的基本使用 一、ip命令介绍1.1 ip命令简介1.2 ip命令的由来1.3 ip命令的安装包 二、ip命令使用帮助2.1 ip命令的help帮助信息2.2 ip命令使用帮助 三、查看网络信息3.1 显示当前网络接口信息3.2 显示网络设备运行状态3.3 显示详细设备信息3.4 查看路由表3.5 查…

canvas画一个笑脸和画一个三角形

画一个笑脸主要用到的是画弧形的方法&#xff1a;arc&#xff0c;有五个参数&#xff1a;起始坐标&#xff0c;半径&#xff0c;弧形起始坐标&#xff0c;还有一个参数是顺时针还是逆时针。画的笑脸&#xff1a;虽然丑了点&#xff0c;但是学习了 代码&#xff1a; <!DOCTY…

【Docker 内核详解】namespace 资源隔离(四):Mount namespace Network namespace

【Docker 内核详解 - namespace 资源隔离】系列包含&#xff1a; namespace 资源隔离&#xff08;一&#xff09;&#xff1a;进行 namespace API 操作的 4 种方式namespace 资源隔离&#xff08;二&#xff09;&#xff1a;UTS namespace & IPC namespacenamespace 资源隔…

[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation

3D生成蓬勃发展&#xff0c;主流方法通过事例比较和用户调查来评价方法好坏&#xff0c;缺少客观比较指标&#xff1b;本文提出Bench&#xff0c;首次综合比较了不同生成方法&#xff1b;具体来说&#xff0c;本文设计了质量评估&#xff08;Quality Assessment&#xff09;和对…

MyBatisPlus的学习项目页面

MyBatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库表信息 类名驼峰转下划线作为表名 名为id的字段作为主键 变量名驼峰转下划线作为表的字段名 常见注解 TableName&#xff1a;用来指定表名 Tableld&#xff1a;用来指定表中的主键字段信息 Tabl…

攻防世界题目练习——Web引导模式(三)(持续更新)

题目目录 1. mfw2.3.4.5. 1. mfw 进去看到网页和页面内容如下&#xff1a; 看到url的参数 ?pageabout &#xff0c;我以为是文件包含什么的&#xff0c;反复试了几次&#xff0c;想用 …/…/…/…/etc/passwd &#xff0c;但是发现.似乎被过滤了&#xff0c;实在不知道怎么做…

SpringCloud学习笔记-Nacos服务分级存储模型

Nacos服务分级存储模型 一级是服务&#xff0c;例如userservice二级是集群&#xff0c;例如杭州或上海三级是实例&#xff0c;例如杭州机房的某台部署了userservice的服务器 微服务互相访问时&#xff0c;应该尽可能访问同集群实例&#xff0c;因为本地访问速度更快。当本集…

Pygame中将鼠标形状设置为图片2-1

在Pygame中利用Sprite类的派生类将鼠标形状设置为图片&#xff0c;其原理就是将Sprite类的派生类对应图片的位置设置为鼠标的当前位置即可。其效果如图1所示。 图1 将鼠标设置为图片 从图1可以看出&#xff0c;鼠标的形状变为红色的&#xff0c;该红色的随着鼠标的移动而移动&…

前后端数据导入导出Excel

一&#xff1a;导入 Excel有读取也便有写出&#xff0c;Hutool针对将数据写出到Excel做了封装。 原理 Hutool将Excel写出封装为ExcelWriter&#xff0c;原理为包装了Workbook对象&#xff0c;每次调用merge&#xff08;合并单元格&#xff09;或者write&#xff08;写出数据&…

激发创意,打造震撼视觉效果——Adobe After Effects 2024(Ae2024)全新来袭!

想要创造独特的、令人惊叹的视觉效果吗&#xff1f;不要犹豫&#xff0c;现在就升级到全新的Adobe After Effects 2024&#xff08;Ae2024&#xff09;&#xff01;作为业界领先的动态图形和视觉效果软件&#xff0c;Ae2024将为您的创作带来前所未有的火花。 Ae2024拥有强大的…

GPT实战系列-ChatGLM2部署Ubuntu+Cuda11+显存24G实战方案

GPT实战系列-ChatGLM2部署UbuntuCuda11显存24G实战方案 自从chatGPT掀起的AI大模型热潮以来&#xff0c;国内大模型研究和开源活动&#xff0c;进展也如火如荼。模型越来越大&#xff0c;如何在小显存部署和使用大模型&#xff1f; 本实战专栏将评估一系列的开源模型&#xf…

处理ElementUI组件默认样式多次重复问题

问题截图&#xff1a; 解决办法&#xff1a; 在postcss.config.js文件里添加配置项&#xff1a; module.exports {plugins: {autoprefixer: {},cssnano: {} //添加这行代码}, } 处理结果&#xff1a; github issues&#xff1a; https://github.com/ElemeFE/element/is…

【LeetCode高频SQL50题-基础版】打卡第6天:第31~35题

文章目录 【LeetCode高频SQL50题-基础版】打卡第6天&#xff1a;第31~35题⛅前言员工的直属部门&#x1f512;题目&#x1f511;题解 判断三角形&#x1f512;题目&#x1f511;题解 连续出现的数字&#x1f512;题目&#x1f511;题解 指定日期的产品价格&#x1f512;题目&am…

让ChatGPT等模型学会自主思考!开创性技术“自主认知”框架

ChatGPT、百度文心一言、Bard等大语言模型展现出了超强的创造能力&#xff0c;加速了生成式AI的应用进程。但AI模型只能基于训练数据执行各种任务&#xff0c;无法像人类一样利用生活知识、过往经验用于复杂的推理和决策。 例如&#xff0c;在玩游戏时&#xff0c;人类可以利用…

01Maven的工作机制: Maven作为依赖管理工具以及Maven作为构建管理工具

Maven的特点及其应用 Maven是Apache软件基金会组织维护的一款专门为Java项目提供构建和依赖管理支持的工具 Maven作为依赖管理工具 管理jar包的规模: 随着我们使用的框架数量越来越多以及框架的封装程度也越来越高&#xff0c;项目中使用的jar包也就越来越多 Maven工程中依…

Qt QMovie和QLabel配合播放GIF表情包

文章目录 效果演示main函数创建MoviePlayer对象头文件movieplayer.h源文件movieplayer.cpp代码解释在Qt框架中,QMovie是用于处理动画和视频的类。所有源码已在本篇文章公布。 效果演示 main函数创建MoviePlayer对象 #include <QApplication>#include "movie

至强服务器BIOS/UEFI驱动开发笔记

至强服务器BIOS/UEFI驱动开发笔记 驱动开发基础Hello UEFI Driver 项目选择项目位置初始化驱动代码文件结构驱动程序入口和基本功能导入AMI工程AMI平台Hello UEFI Driver 编译问题测试结果打印设备列表继续开发`HelloWorldSupported`函数依赖配置使用脚本编译编译测试此DXE驱动…

RCNN系列网络的理解

R-CNN 作者 &#xff1a; Ross Girshick FAST R-CNN 作者 &#xff1a; Ross Girshick FASTER R-CNN 作者 &#xff1a; Jian Sun MASK R-CNN 作者 &#xff1a;kaiming he 一…

kong 和konga网关部署及使用

Kong是一款基于OpenResty&#xff08;Nginx Lua模块&#xff09;编写的高可用、易扩展的&#xff0c;由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的&#xff0c;能提供易于使用的RESTful API来操作和配置API管理系统&#xff0c;…

使用XLua在Unity中获取lua全局变量和函数

1、Lua脚本 入口脚本 print("OK") --也会执行重定向 require("Test") 测试脚本 print("TestScript") testNum 1 testBool true testFloat 1.2 testStr "123"function testFun()print("无参无返回") endfunction te…