目标

使用Vue构建一个非常简单CRUD应用程序,以便您更好地了解它的工作方式。

效果页面

比如我们要实现这样列表、新增、编辑三个页面:

列表页面

新增页面

编辑页面

我们把这些用户信息保存到Todos的数组中,然后增删改查就在这个数组上进行:

Todos: [{
Name: "遛狗"
},
{
Name: "跑步"
}
]

我们在这里一共要实现TodoList.vue、TodoAdd.vue、TodoEdit.vue三个组件,分别对应列表页面、新增页面、编辑页面的处理

列表功能

首先,在TodoList.vue中提供一个setTodos方法,将需要展示的数据给了数组Todos:

setTodos(arr) {
this.Todos = JSON.parse(JSON.stringify(arr));
}

然后,在html中使用v-for把Todos数组渲染出来:

<tr v-for="(item, index) in Todos" :key="index">
<td>{{index+1}}</td>
<td>{{item.Name}}</td>
<td>
<button @click="editTodo(index)">编辑</button>
<button @click="deleteTodo(index)">删除</button>
</td>
</tr>

新增功能

首先,在TodoList.vue中提供一个新增按钮及新增页面组件:

<button type="text" @click="addTodo()">新增</button>
<TodoAdd :dialogVisible="addDialogVisible" :selectedItem="selectedItem" @save="createTodo" @cancel="cancel"></TodoAdd>

接下来,TodoList.vue中提供addTodo方法,控制TodoAdd页面是否显示:

addTodo() {
this.addDialogVisible = true;
},

接下来,在TodoAdd.vue中提供一个save和cancel方法,分别调用TodoList.vue中的createTodo和cancel方法:

save() {
this.$emit('save', this.selectedItem);
},
cancel() {
this.$emit('cancel');
}

最后,我们分别提供createTodo方法,主要使用push方法,把信息添加到Todos数组的最后:

createTodo(item) {
this.Todos.push(item);
this.setTodos(this.Todos);
this.selectedIndex = -1;
this.selectedItem = {}
this.addDialogVisible = false;
},

修改功能

首先,在TodoList.vue中提供一个编辑按钮及编辑页面组件:

<button @click="editTodo(index)">编辑</button>
<TodoEdit :dialogVisible="editDialogVisible" :selectedItem="selectedItem" @save="updateTodo" @cancel="cancel"></TodoEdit>

接下来,TodoList.vue中提供editTodo方法,控制TodoEdit页面是否显示:

editTodo(index) {
this.selectedIndex = index;
this.selectedItem = JSON.parse(JSON.stringify(this.Todos[index]));
this.editDialogVisible = true;
},

接下来,在TodoEdit.vue中提供一个save和cancel方法,分别调用TodoList.vue中的updateTodo和cancel方法:

save() {
this.$emit('save', this.selectedItem);
},
cancel() {
this.$emit('cancel');
}

最后,我们分别提供updateTodo方法,更新信息到Todos数组:

updateTodo(item) {
this.Todos[this.selectedIndex] = item;
this.setTodos(this.Todos);
this.selectedIndex = -1;
this.selectedItem = {}
this.editDialogVisible = false;
},

删除功能

在vue中提供一个deleteTodo方法,删除时,通过splice(index, 1),可以删除index位置的数据,页面上的数据自动就会更新:

deleteTodo(index) {
this.Todos.splice(index, 1);
this.selectedIndex = -1;
this.selectedItem = {}
},

小结

目前为止,我们完成了Vue的CRUD,其实里面的难点不太多,主要是练习下组件间的数据与事件传递。

文中用到的代码我们放在:https://github.com/zcqiand/miscellaneous/tree/master/vue

一起学Vue:CRUD(增删改查)的更多相关文章

  1. vue实现增删改查(内附源代码)

    VUE+Element实现增删改查 @ 目录 VUE+Element实现增删改查 前言 实验步骤 总结: 源代码 前言 &最近因为一些原因,没有更博客,昨天老师布置了一个作业,用vue实现增删 ...

  2. 使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序

    使用ASP.NET Core MVC 和 Entity Framework Core 开发一个CRUD(增删改查)的应用程序 不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻 ...

  3. 前端的CRUD增删改查的小例子

    前端的CRUD增删改查的小例子 1.效果演示 2.相关代码: <!DOCTYPE html> <html lang="en"> <head> & ...

  4. yii2-basic后台管理功能开发之二:创建CRUD增删改查

    昨天实现了后台模板的嵌套,今天我们可以试着创建CRUD模型啦 刚开始的应该都是“套用”,不再打算细说,只把关键的地方指出来. CRUD即数据库增删改查操作.可以理解为yii2为我们做了一个组件,来实现 ...

  5. 创建支持CRUD(增删改查)操作的Web API(二)

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  6. vue的增删改查

    我们把这些用户信息保存到list的数组中,然后增删改查就在这个数组上进行: list: [ { username: 'aaaaa', email: '123@qq.com', sex: '男', pr ...

  7. 关于vue的增删改查操作

    利用vue也可以实现数据的增删改查,只是未涉及到数据库,只是在浏览器页面中进行操作. 将datas数组中的数据循环输出: 再增加一行,用于保存新数据,编辑数据后保存: 此时,数据已经呈现出来,开始进行 ...

  8. 【EF6学习笔记】(二)操练 CRUD 增删改查

    本篇原文链接: Implementing Basic CRUD Functionality 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根 ...

  9. EF6 学习笔记(二):操练 CRUD 增删改查

    EF6学习笔记总目录 ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 接上篇: EF6 学习笔记(一):Code First 方式生成数据库及初始化数据库实际操作 本篇原文链接: I ...

随机推荐

  1. jwt攻击手段

    jwt 秘钥泄漏/敏感文件泄漏 在一些配置文件被我们可查的情况下,包括各种文件读取,源码泄漏,此时伪造身份就变得很容易了. 空加密算法 对于明文的加密算法通常为HS256,在jwt中分为三个部分,以点 ...

  2. Spring属性注入(set方式、构造函数方式、p名称空间、spel、复杂类型)

    1.set注入方式 (1)注入的为值类型(八大数据类型)的数据 配置文件: <?xml version="1.0" encoding="UTF-8"?&g ...

  3. 解决 SecureCRT 和 SecureFX 中文乱码

    引言 最近老是有小伙伴给我发消息说,下载的 SecureCRT 和 SecureFX 安装打开后连接了自己的服务器或虚拟机后会出现中文乱码,每次都要给一一回复,我倒没事,主要是有时候因为工作的原因,所 ...

  4. OpeMp【schedule】

  5. 指针数组学习中的小插曲真是醉了-----Strcmp用法

    参考: 1.C++ 从入门到精通第三版: 2.https://blog.csdn.net/liaoshengshi/article/details/45099923      如是多次被别人转载的地址 ...

  6. matlab中find 查找非零元素的索引和值

    来源:https://ww2.mathworks.cn/help/matlab/ref/find.html?searchHighlight=find&s_tid=doc_srchtitle f ...

  7. Oracle Database XE 11gR2 SQL 命令行的显示调整

    操作系统:Windows 10 x64 Oracle Database XE 11gR2 参考:在cmd命令行使用sqlplus时的页面显示问题 通过 cmd 命令行或运行 SQL 命令行查看一张表的 ...

  8. 利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料)

    1.对语料进行分析 基本目录如下: 其中train存放的是训练集,answer存放的是测试集,具体看下train中的文件: 下面有20个文件夹,对应着20个类,我们继续看下其中的文件,以C3-Art为 ...

  9. MySQL中事务和事务的隔离级别

    本文主要是帮助理解相关知识,没有具体的操作和代码. 事务 事务就是一组操作,这组操作要么全部成功,要么全部失败. 最经典的例子就是银行转账: 张三给李四转账100,对用户来说,就是一个操作.但对应到数 ...

  10. phpstorm中配置使用svn详细步骤

    一.搭建SVN环境 1.下载VisualSVN Sever.下载地址:https://www.visualsvn.com/server/download/ 2.安装VisualSVN Server. ...