当前位置:首页 > 技术分析 > 正文内容

vue-element-admin 增删改查(五)

此篇幅比较长,涉及到的小知识点也比较多,一定要耐心看完,记住学东西没有耐心可不行!!!

一、添加和修改

注:添加和编辑用到了同一个组件,也就是此篇文章你能学会如何封装组件及引用组件;第二能学会async和await;第三父向子传递数据props和子向父传递数据$emit();

1.添加数据

(1)请求地址:/article/category利用post传递数据

(2)编写api:注意add的url地址用的 反单引号,可以在url后面进行组合数据,这个知识点在编辑和删除你会看到详细的解释。

(3)编写方法

首先新建一个组件,里面的代码同样是从elementUI中复制过来的表单,下面会根据详细步骤解析elementUI标签中属性的意思。

在category/index.vue中进行引用,注意组件要首字母大写,不是必须的,但是最好规范一些。

引用完毕之后进行修改edit.vue组件:解析::title动态绑定的title名称;:visible.sync布尔类型,控制模态框的显示与否;:before-close是一个方法,关闭模态框;:rules表单验证;ref=相当于id=;:model表单的数据;prop=关闭模态框时清除数据要用到,这个在elementUI中有解释,自己去看文档;v-model绑定的具体数值;:label绑定的数据,要做默认选中效果;@click执行的方法

由于是父组件向子组件传递数据,所以在子组件中要用props进行接收,然后在上面进行动态绑定;注意:所有接受的变量要定义type和default,声明类型和默认值;此处小知识点,子组件向父组件传递值用$emit();

表单验证:在子组件中返回rules,也就是开头:rules="rules";注意:这里的rules是个object,里面需要验证的字段是个array,数组中每个value都是object,详细的验证方法在elementUI中有体现,自己去看。

此处定义的handleClose、onSubmit、submit方法;注意:在submit中有编辑和添加方法,用的同一个,所以有if判断;this.$refs['form'].resetFields()相当于jquey中$('#form').resetFields()清空数据;async、await和promise区别,自己去百度,这里只说明async和await是es6新语法,相当于api.add(this.formData).then((res) => {//TODO});这里可能有同学会有疑问,this.closeForm()这个方法在哪?他是父组件传递过来的Funciton,在下文中会解释到。

开始操作父组件index.vue,在data中返回edit对象,然后把里面的值绑定到<edit />组件标签中;解析:title就是title;visible是否显示模态框;formData传递过去的数据,由于是添加功能,所以formData是空的,编辑就需要传递了;closeForm传递一个方法,用来关闭模态框

到这里,添加功能就已经实现了,仔细去看我上面的截图,一定要注意我说的点,如果你比着写发现不对,一定要仔细对比。当对比不出来的时候,留言告诉我。

2.修改数据

(1)请求地址:/article/category/{id} 查询数据用get,这里的请求类型用的是restful请求方式,restful包含:get、post、put、patch、delete;/article/category 修改数据用put

(2)编写api:由于修改需要先查到数据,然后再进行传递和渲染,所以在api中有一个查询数据方法,也就是getById()

(3)编写方法

在index.vue父组件中编辑方法为handleEdit(),同样这里用到了async和await,然后先请求到了当前id返回的值,然后传递到edit.vue子组件中。

这里的if判断,判断传递过来的formData的id值是否为空,有值说明是编辑,无值说明是添加。if判断就在这里进行的体现价值,因为我们添加和编辑用的同一个组件,所以if显得至关重要。

仔细去看代码,去理解我的思路,为什么某些地方是这样写而不是那样写,一定要注意。哪里有看不明白的一定要留言进行讨论,我看到会第一时间回复。最终的效果:

二、删除

(1)请求地址:/article/category/{id} 删除用的是delete请求类型

(2)编写api:再强调一遍,url用的反单引号

(3)编写方法:因为删除用不到子组件了,所以删除都在index.vue中进行的

这里用到了elementUI中的$confirm方法,去文档中复制使用即可,方法的话就不再详细解释了,前面几篇文章已经解释过了。api.delete(id).then((res) => {//TODO})

最终效果:点击删除,显示提示,传递id进行删除。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4473.html

分享给朋友:

“vue-element-admin 增删改查(五)” 的相关文章

代码分支规范

一.gitflow工作流说明:主分支:master,稳定版本代码分支,对外可以随时编译发布的分支,不允许直接Push代码,只能请求合并(pull request),且只接受hotfix、release分支的代码合并。gitlab上做限制。热修复分支:hotfix,针对现场紧急问题、bug修复的代码分...

使用cgroup限制进程资源

这里使用containerd项目中的cgroup包来实现进程资源限制。先写一个耗费一个CPU并且一秒增加10m内存的测试进程package mainimport ( "fmt" "math/rand" "time")func main() { go f...

博信股份新战略后再推新品 TOPPERS E2耳机售价199元

中新网6月21日电 20日,博信股份在北京正式推出新品TOPPERS主动降噪耳机E2,这是博信股份继2月战略暨新品发布会后的第二次新品亮相。价格方面,TOPPERS主动降噪耳机E2零售价199元,并于6月20日下午4点在京东商城公开销售。据介绍,TOPPERS主动降噪耳机E2采用AMS(奥地利微电子...

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

雅马哈TMAX 560 TECH MAX 外媒深度测评

应雅马哈(Yamaha)的邀请,在葡萄牙埃斯托里尔对全新的Yamaha TMAX 560 Tech Max踏板车进行了测试,在这里TMAX 560 Tech Max售价为11649英镑。雅马哈TMAX长期以来一直站在踏板车的顶端,就声誉和知名度而言,它是当之无愧的大踏板界NO.1。2020 TMAX...

一文让你彻底搞懂 vue-Router

路由是网络工程里面的专业术语,就是通过互联把信息从源地址传输到目的地址的活动。本质上就是一种对应关系。分为前端路由和后端路由。后端路由:URL 的请求地址与服务器上的资源对应,根据不同的请求地址返回不同的资源。前端路由:在单页面应用中,根据用户触发的事件,改变URL在不刷新页面的前提下,改变显示内容...