Vue 修改成功之后我做了什么

背景:前端将修改的数据传递到后端,后端返回成功之后,我们要将数据及时显示出来。

霸道方法一:重新请求接口

柔和方法二:修改成功之后的数据传递到源数据中,进行双向绑定显示。

我是怎么做的

有想过用霸道方法,剩下的时间就是自己的啦。哈哈。

但是今天我在这里进行了让步,明天我就会其他的事情上做出让步(20岁的小伙子摸什么鱼咯,摸鱼都是富人做的事情),所以还是要迎难而上。



我的需求: 我需要对列表中的某一行进行修改,然后将修改且成功的数据重新放入列表中。

我的想法: 我们知道Vue可以进行双项绑定,双向绑定又是基于存放在堆中数据引用控制的,所以我们可以在点击修改的时候把源数据保存起来(将源数据引用保存起来)

保存源数据引用

data: function () {
        return {
            updateData: {
// 需要修改的数据
                id: 0,
                meanings: [],                 // 为了修改不重新请求数据直接保存数据源
                baseData: []
            }
}
}

我们先创建存放数据源的对象,然后只需要在点击修改的是时候将数据源引用传入baseDate对象中就可以了。

  • 首先我们当然是将修改对象进行赋值
  • 然后将源数据存入baseData
  • 使用不保存数据源的引用传入this.updateData.meanings进行修改操作(这里一定要使用不保存数据源引用的方式赋值,不然你修改this.updateData.meanings也会到源数据进行直接修改,还没有修改成功,就已经将列表数据修改掉了。)

反向修改源数据

当后端返回修改成功之后我们就需要将修改之后的数据,反向到源数据中。这个时候我们之前创建的baseData对象就起作用啦。因为baseData就是源数据。

  • 因为我的业务需求,我保存的是一个数组,所以我需要将baseData源数据的长度修改为我修改后数据的长度。(主要是给各位小伙伴安排位置坐下来,看我献丑)
  • 然后就是在不改变源数据数据引用的前提下面进行修改数据。(这里我用到了Vue.set方法,因为自己再去使用遍历拿到this.updateData.meanings[i] 对象中数据的值,然后进行一一赋值,代码太多了,既然有写好的api所以我就直接使用了。Vue.set方法原理应该也是一样的,感兴趣的小伙伴可以自己研究一下。)

最新文章

  1. BaaS API 设计规范
  2. 黄聪:GeckoWebBrowser多窗口独立cookie
  3. 细说angular Form addControl方法
  4. 将long数字序列化为json时,转换为字符串
  5. 5.3(2)----机器人走方格2(CC150)
  6. Swift - 代码创建单例
  7. XML CDATA节点
  8. RestTemplate实践
  9. Using HttpClient properly to avoid CLOSE_WAIT TCP connections
  10. CodeFirst解决数据迁移问题
  11. [连载]JavaScript讲义(02)--- JavaScript核心编程
  12. hackyviewpager有什么用
  13. Delphi TRect函数例子
  14. ecshop图片上传JPEG格式失败问题
  15. 201521123067 《Java程序设计》第12周学习总结
  16. python3 爬去QQ音乐
  17. centos7安装xfce桌面
  18. 获取某个元素第一次出现在数组(json数组)的索引
  19. oracle导入导出功能
  20. 使用sql语句比较excel中数据的不同

热门文章

  1. css3系列之过渡transition
  2. Java基础教程——Object类
  3. 【python】Matplotlib作图中有多个Y轴
  4. 【mq读书笔记】mq事务消息
  5. 【鸿蒙开发板试用报告】用OLED板实现FlappyBird小游戏(中)
  6. 交换机三种端口模式Access、Hybrid和Trunk
  7. JZOJ2020年8月11日提高组T2 宝石
  8. Spring Boot 统一返回结果及异常处理
  9. 大数据-redis-redis启动出错
  10. PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件移除选项卡的removeTab和clear方法