vue获取data数据改变前后的值方法

作者:养只猫 时间:2024-04-30 10:35:10 

场景:购物车增加商品数量同时更新bridge标志上的总商品个数,如果只是加上当前变化后的数量的话则之前原有的数量会被重新添加一遍造成计算错误。因此要减去变化前的数量才能得到添加的数量。

方法一: 直接watch监听data的数据


watch: {
a (now,old) {
console.log(now,old)
}
}

old为旧的值now为更新后的值

方法二:自定义指令

通过自定义指令将更新前的值绑定到对应自定义指令的元素的dataset上然后在vue文件里面通过ref获取到元素来获取旧的值

自定义指令就不多说了前面有写过以前相关的博客了这里直接上代码

自定义指令要新建一个js文件并引入vue源码包


import Vue from 'vue'
/*自定义指令*/
/*el所绑定的对象,binding指令上的参数*/
Vue.directive('n',{
 /*插入数据时触发*/
 inserted: function (el,binding) {
   console.log('插入',binding,el)
   el.innerHTML = binding.value
 },
 update: function (el,binding) {
   console.log('更新参数',binding)
   el.dataset.oldNum = binding.oldValue
   el.innerHTML = binding.value
 },
 bind:function (el,binding) {
   console.log('绑定参数',binding)
   el.innerHTML = binding.value
 }
})

.vue文件中使用


import n from '../assets/n'
<div ref="div" v-n="a"></div>
<button @click="inc">增加</button>
inc () {
 this.a++
 var that = this
 setTimeout(function () {
   console.log(that.$refs.div.dataset.oldNum)
 },1)
}

这里的inc是为了更新数据的操作,其中为什么要设个定时器呢?

因为先改变参数然后才去触发v-n指令如果不加定时器得到的数据是上上次更新的数据

对比两种方法,明显是watch比较方便但是自定义指令,也是个不错的东西学习一下可能以后其他地方会用到

来源:https://blog.csdn.net/qq_40816649/article/details/84988981

标签:vue,data,数据
0
投稿

猜你喜欢

  • Oracle入侵常用操作命令整理

    2009-03-04 11:11:00
  • Django ORM 查询管理器源码解析

    2023-01-30 12:28:47
  • Numpy中的mask的使用

    2022-06-10 19:33:11
  • css分页放大镜效果

    2008-11-02 15:35:00
  • MySQL 复制表详解及实例代码

    2024-01-22 22:49:16
  • Vue+Vux实现登录功能

    2024-04-30 10:39:45
  • Python真题案例之最长回文子串 周期串详解

    2021-12-01 02:57:02
  • 浏览器是怎样工作的(一):基础知识

    2012-05-09 20:32:48
  • golang微服务框架基础Gin基本路由使用详解

    2023-07-23 10:31:19
  • MySQL 函数索引的优化方案

    2024-01-23 03:13:36
  • Perl实现的Linux下socket代理服务器

    2023-04-28 10:57:41
  • Django实现简单登录的示例代码

    2022-03-26 04:10:18
  • Zend Framework教程之Zend_Config_Ini用法分析

    2024-05-13 09:23:47
  • 在Django的模型中添加自定义方法的示例

    2021-12-07 17:14:58
  • 用于业余项目的8个优秀Python库

    2022-04-04 09:44:51
  • Django开发中的日志输出的方法

    2023-02-24 07:37:17
  • vue.js中使用echarts实现数据动态刷新功能

    2024-04-22 12:53:19
  • python实现linux下抓包并存库功能

    2022-12-23 20:22:06
  • 浅谈MySql整型索引和字符串索引失效或隐式转换问题

    2024-01-15 20:41:39
  • python+flask实现API的方法

    2023-12-18 17:25:03
  • asp之家 网络编程 m.aspxhome.com