Ⅰ、项目准备与解题思路:

1、项目准备:
其一、要有写 HTML + CSS + JS 的软件; (如:VSCode 工具);
其二、要提前下载好 Vue 环境,因为在项目中会引用 'vue.js' ;

2、解题思路:
其一、展示一个界面来把学生的信息展示出来(比如说:学生的基本信息等);
其二、做学生数据信息的增删改查的操作;

Ⅱ、项目总代码为:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.stuTab,.addStu {margin: auto;width: 735px;border-collapse: collapse;}.addStu {background-color: orange;}.stuTab th,.stuTab td {border: 1px solid orange;padding: 10px;height: 35px;line-height: 35px;text-align: center;}.stuTab th {background-color: orange;}</style>
</head>
<body><div id="app"><div class="addStu"><label>编号:<input type="text" v-model="id" :disabled="flag"></label><label>姓名:<input type="text" v-model="name"></label><label>性别:<input type="text" v-model="sex"></label><button @click="handleAddStudent">提交</button></div><table class="stuTab"><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr :key='stu.id' v-for="stu in students"><td>{{stu.id}}</td><td>{{stu.name}}</td><td>{{stu.sex}}</td><td><a href="" @click.prevent='toEdit(stu.id)'>修改</a><span>|</span><a href="" @click.prevent='removeStudent(stu.id)'>删除</a></td></tr></table></div><script src="./node_modules/vue/dist/vue.js"></script><script>let vm = new Vue({el: '#app',data() {return {flag: false,students: [{id: 1,name: 'zhangsan',sex: '男'}, {id: 2,name: 'lily',sex: '女'}, {id: 3,name: 'Tom',sex: '男'}, {id: 4,name: 'lucy',sex: '女'}],id: '',name: '',sex: ''}},methods: {handleAddStudent() {if (this.flag) {this.students.some(item => {if(item.id === this.id) {item.name = this.name;item.sex = this.sex;return true;}});this.flag = false;} else {let stu = {id: this.id,name: this.name,sex: this.sex};this.students.push(stu);}this.id = '';this.name = '';this.sex = '';},toEdit(id) {this.flag = true;let student = this.students.filter(stu => {return stu.id == id;});this.id = student[0].id;this.name = student[0].name;this.sex = student[0].sex;},removeStudent(id) {this.students = this.students.filter(stu => stu.id != id);}}});</script>
</body>
</html>

Ⅲ、实现代码过程与页面显示:

1、实现学生基本信息的展示页面:
A、代码为: (此时主要是:HTML + CSS)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.stuTab,.addStu {margin: auto;width: 735px;border-collapse: collapse;}.addStu {background-color: orange;}.stuTab th,.stuTab td {border: 1px solid orange;padding: 10px;height: 35px;line-height: 35px;text-align: center;}.stuTab th {background-color: orange;}</style>
</head>
<body><div id="app"><div class="addStu"><label>编号:<input type="text" v-model="id" :disabled="flag"></label>//<!-- 在 flag 为 true 的时候,id 的值是不可编辑的; (即:此时的修改是不能改动 id 的值的) --><label>姓名:<input type="text" v-model="name"></label><label>性别:<input type="text" v-model="sex"></label><button @click="handleAddStudent">提交</button>// 此操作是:待后面增加响应的 handleAddStudent() 触发函数;</div><table class="stuTab"><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr :key='stu.id' v-for="stu in students">// 该操作是:循环并显示在 data 中的 students 数据信息;<td>{{stu.id}}</td><td>{{stu.name}}</td><td>{{stu.sex}}</td><td><a href="" @click.prevent='toEdit(stu.id)'>修改</a>// 此操作是:待后面增加响应的 toEdit() 触发函数;// 而此时的 'prevent' 是为了阻止超链接的默认自动跳转行为;<span>|</span><a href="" @click.prevent='removeStudent(stu.id)'>删除</a>// 此操作是:待后面增加响应的 removeStudent() 触发函数;</td></tr></table></div><script src="./node_modules/vue/dist/vue.js"></script><script>let vm = new Vue({el: '#app',data() {return {flag: false,  // 该 flag 值可以用于此后是修改数据信息还是添加数据信息的判断;students: [{id: 1,name: 'zhangsan',sex: '男'}, {id: 2,name: 'lily',sex: '女'}, {id: 3,name: 'Tom',sex: '男'}, {id: 4,name: 'lucy',sex: '女'}],id: '',name: '',sex: ''}}});</script>
</body>
</html>

B、页面显示为:
// 但此时的 提交、修改和删除按钮是没有响应功能的,而只是页面展示;

2、实现学生基本信息的添加新学生信息的功能:
A、代码为:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.stuTab,.addStu {margin: auto;width: 735px;border-collapse: collapse;}.addStu {background-color: orange;}.stuTab th,.stuTab td {border: 1px solid orange;padding: 10px;height: 35px;line-height: 35px;text-align: center;}.stuTab th {background-color: orange;}</style>
</head>
<body><div id="app"><div class="addStu"><label>编号:<input type="text" v-model="id" :disabled="flag"></label><label>姓名:<input type="text" v-model="name"></label><label>性别:<input type="text" v-model="sex"></label><button @click="handleAddStudent">提交</button></div><table class="stuTab"><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr :key='stu.id' v-for="stu in students"><td>{{stu.id}}</td><td>{{stu.name}}</td><td>{{stu.sex}}</td><td><a href="" @click.prevent='toEdit(stu.id)'>修改</a><span>|</span><a href="" @click.prevent='removeStudent(stu.id)'>删除</a></td></tr></table></div><script src="./node_modules/vue/dist/vue.js"></script><script>let vm = new Vue({el: '#app',data() {return {flag: false,students: [{id: 1,name: 'zhangsan',sex: '男'}, {id: 2,name: 'lily',sex: '女'}, {id: 3,name: 'Tom',sex: '男'}, {id: 4,name: 'lucy',sex: '女'}],id: '',name: '',sex: ''}},methods: {handleAddStudent() {//处理增加学生的函数(方法);if (this.flag) {// 考虑到:在添加学生信息时,可能会存在的 '编号 id' 发生冲突,因此用 flag 作为标记来进行区分添加新学生信息的操作和修改学生信息的操作;// 此时的 flag 的值为:true,那么就是在进行修改操作:此时不能修改 id 值,只能修改其他信息,并将原有的信息等覆盖(更新); // 若此时的 flag 的值为:false,那么就是在进行添加操作:此时可以添加新的 id 值和其他的信息;this.students.some(item => {  // 此时是修改学生信息的操作;// some 操作是:找到一个符合 'item.id' 的值就结束并返回相关的值;if(item.id === this.id) {item.name = this.name;item.sex = this.sex;return true;}});this.flag = false; // 修改学生信息操作结束后,再将 flag 值修改为:false,那么此后再操作时仍旧认为其是添加学生信息的操作;} else {    // 此时是添加学生信息的操作;let stu = {id: this.id,name: this.name,sex: this.sex};this.students.push(stu); // 将新添加的学生信息再放在 students 数组中,表示:已成功添加新学生信息并在重新循环在页面展示;}// 下面的操作为:清空表单元素(即:便于下次再添加新的学生信息,或再修改学生的相关信息;)this.id = '';this.name = '';this.sex = '';}}});</script>
</body>
</html>

B、页面显示与操作为:
其一、在文本框中添加新的学生信息:
// 因为此时的 flag 默认值为:false,因此肯定是添加新学生信息的操作;

其二、添加操作后的页面显示结果为:

3、实现学生基本信息的修改学生信息的功能:
A、代码为:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.stuTab,.addStu {margin: auto;width: 735px;border-collapse: collapse;}.addStu {background-color: orange;}.stuTab th,.stuTab td {border: 1px solid orange;padding: 10px;height: 35px;line-height: 35px;text-align: center;}.stuTab th {background-color: orange;}</style>
</head>
<body><div id="app"><div class="addStu"><label>编号:<input type="text" v-model="id" :disabled="flag"></label><label>姓名:<input type="text" v-model="name"></label><label>性别:<input type="text" v-model="sex"></label><button @click="handleAddStudent">提交</button></div><table class="stuTab"><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr :key='stu.id' v-for="stu in students"><td>{{stu.id}}</td><td>{{stu.name}}</td><td>{{stu.sex}}</td><td><a href="" @click.prevent='toEdit(stu.id)'>修改</a><span>|</span><a href="" @click.prevent='removeStudent(stu.id)'>删除</a></td></tr></table></div><script src="./node_modules/vue/dist/vue.js"></script><script>let vm = new Vue({el: '#app',data() {return {flag: false,students: [{id: 1,name: 'zhangsan',sex: '男'}, {id: 2,name: 'lily',sex: '女'}, {id: 3,name: 'Tom',sex: '男'}, {id: 4,name: 'lucy',sex: '女'}],id: '',name: '',sex: ''}},methods: {handleAddStudent() {if (this.flag) {this.students.some(item => {if(item.id === this.id) {item.name = this.name;item.sex = this.sex;return true;}});this.flag = false;} else {let stu = {id: this.id,name: this.name,sex: this.sex};this.students.push(stu);}this.id = '';this.name = '';this.sex = '';},toEdit(id) { // 修改操作;this.flag = true; // 此时将 flag 调成 true,就表示是修改学生信息的操作;let student = this.students.filter(stu => {// filter 操作:找到第一个满足条件的元素就终止过滤操作;// 注意:此时的返回值 student 是一个对象;return stu.id == id;});this.id = student[0].id;   // 此时在文本框中显示的是:已经选中的学生信息;this.name = student[0].name;this.sex = student[0].sex;}}});</script>
</body>
</html>

B、页面显示与操作为:
其一、在点击编号为 3 后的修改操作后,页面显示结果如下:

其二、修改姓名为:tender,性别为:女,并提交后的页面显示为:

4、实现学生基本信息的删除学生信息的功能:
A、代码为:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.stuTab,.addStu {margin: auto;width: 735px;border-collapse: collapse;}.addStu {background-color: orange;}.stuTab th,.stuTab td {border: 1px solid orange;padding: 10px;height: 35px;line-height: 35px;text-align: center;}.stuTab th {background-color: orange;}</style>
</head>
<body><div id="app"><div class="addStu"><label>编号:<input type="text" v-model="id" :disabled="flag"></label><label>姓名:<input type="text" v-model="name"></label><label>性别:<input type="text" v-model="sex"></label><button @click="handleAddStudent">提交</button></div><table class="stuTab"><tr><th>编号</th><th>姓名</th><th>性别</th><th>操作</th></tr><tr :key='stu.id' v-for="stu in students"><td>{{stu.id}}</td><td>{{stu.name}}</td><td>{{stu.sex}}</td><td><a href="" @click.prevent='toEdit(stu.id)'>修改</a><span>|</span><a href="" @click.prevent='removeStudent(stu.id)'>删除</a></td></tr></table></div><script src="./node_modules/vue/dist/vue.js"></script><script>let vm = new Vue({el: '#app',data() {return {flag: false,students: [{id: 1,name: 'zhangsan',sex: '男'}, {id: 2,name: 'lily',sex: '女'}, {id: 3,name: 'Tom',sex: '男'}, {id: 4,name: 'lucy',sex: '女'}],id: '',name: '',sex: ''}},methods: {handleAddStudent() {if (this.flag) {this.students.some(item => {if(item.id === this.id) {item.name = this.name;item.sex = this.sex;return true;}});this.flag = false;} else {let stu = {id: this.id,name: this.name,sex: this.sex};this.students.push(stu);}this.id = '';this.name = '';this.sex = '';},toEdit(id) {this.flag = true;let student = this.students.filter(stu => {return stu.id == id;});this.id = student[0].id;this.name = student[0].name;this.sex = student[0].sex;},removeStudent(id) { // 删除操作;this.students = this.students.filter(stu => stu.id != id);// 该操作为:将不是学生 id 信息的值保留下来,并赋值给 students;// 此时就达到了删除 id 学生信息的目的;}}});</script>
</body>
</html>

B、页面显示与操作为:
// 点击编号为 4 后的删除操作后,页面显示结果如下:

Ⅳ、小结:

其一、存在的问题:
A、在添加新学生信息时,没有考虑 id 与 students 中 id 相同的问题; (即:可能会导致有重复的 id 值出现);

其二、哪里有不对或不合适的地方,还请大佬们多多指点和交流!

用 Vue 实现学生信息管理系统的增删改查操作,模拟数据库操作(但并没有连接数据库)相关推荐

  1. java+SQL做学生信息管理系统(增删改查)

    java+SQL做学生信息管理系统(增删改查) [过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1cLKJPKXauLCl-Vwah6wFIQ ...

  2. JSP学籍信息管理系统实现增删改查的相关功能操作

    JSP学籍信息管理系统 前言 这是我大二上学期那年学习JSP做的实训项目,现在把它贴在网上供自己和需要的人进行回顾和参考,如有哪里做的不规范还请指出,因为这是第一次做的项目所以不是特别完善,界面也不够 ...

  3. laravel mysql增删改查_Laravel框架数据库操作的增删改三种方式 阿星小栈

    Laravel提供了3种操作数据库方式:DB facade(原始方式).查询构造器和Eloquent ORM. 数据库的配置文件在config目录下的database.php里.打开这个文件,找到my ...

  4. Java实现一个学生成绩管理系统,要求存储学生信息并进行增删改查操作。

    这是我刚学完Java封装继承的时候写的一个小案例,还不会使用集合,就用数组硬写了出来,但数组的缺点是不能改变数组的长度,虽然可以写个方法新建长度加一的数组然后把旧的数组装进去,但是真的好麻烦还没必要. ...

  5. python输入学生姓名_python学生管理系统(增删改查以及菜单返回操作)

    (1)功能需求:1.在一个循环中可以输入内容2.显示函数1.新的商业卡2.显示所有3.查询业务网卡0.退出系统3.他们想让用户输入操作执行,比如输入1,2,3,04.新list-prompt用户输入名 ...

  6. c语言学生信息管理系统框架,vue实现学生信息管理系统

    本文实例为大家分享了vue实现学生信息管理系统的具体代码,供大家参考,具体内容如下 界面 代码 vue--学生信息管理系统 .title{margin:20px;font-weight: bold;f ...

  7. java计算机毕业设计ssm基于SSM学生信息管理系统37myx(附源码、数据库)

    java计算机毕业设计ssm基于SSM学生信息管理系统37myx(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm ...

  8. 学生管理系统实现增删改查

    学生管理系统实现增删改查 文章目录 学生管理系统实现增删改查 前言 一.代码块 二.代码分析 1.代码思路 2,学生类 3,接口 4,chuli类 5, 在主类中,kaishi方法 5,显示效果 前言 ...

  9. 使用javaweb进行用户管理系统的增删改查,分页和条件查询

    使用javaweb进行用户管理系统的增删改查,分页和条件查询 如有转载请标注来源!!!谢谢配合 源码已经上传,可以自行下载 https://download.csdn.net/download/wei ...

最新文章

  1. Azure系列2.1.15 —— SharedAccessBlobPolicy
  2. 2016-03-09c中指针与数组学习记录
  3. jsonp java后台_jsonp与Java后端
  4. MFC窗口颜色的设置
  5. java中定义一个CloneUtil 工具类
  6. 打印时候复选框勾选不见了_checkbox 选中未显示对号勾选的问题
  7. sql计数_SQL计数区分功能概述
  8. element ui 邮箱非必填校验
  9. 程序猿的执业修养(七)——不要卖弄,多思慎言
  10. 雷达卫星测高原理、最新发展情况
  11. excel删除行闪退_excel打开闪退解决-打开excel自动退出-自动关闭的解决
  12. windows XP cmd命令大全
  13. Spring集成ESAPI
  14. 体验汉印T260标签打印机,让分类管理更简单
  15. #pragma once用法
  16. 数字孪生中的人工智能——技术现状、挑战和未来研究课题
  17. SAP案例教程SD销售后台配置
  18. matlab的比较器模块,simulink中的比较器
  19. android usb摄像头 前后置,android – 在后置和前置摄像头之间切换
  20. pythoneducoder苹果梨子煮水的功效_荸荠和梨子一起煮的好处

热门文章

  1. java五子棋设计_Java课程设计——五子棋
  2. excel中文名字转换多种方法
  3. vb调用蜂鸣器制造音阶
  4. SLQ中小数点前面的0无法显示
  5. gcc 编译过程中头文件的查找路径
  6. python 文件写入和异常
  7. 小学奥数10道经典题
  8. MPEG4、XVID、AVC有什么区别
  9. 分享百度快照不更新的解决技巧
  10. Nutshell NEMU Xiangshan difftest