vue获取data数据改变前后的值方法
作者:养只猫 发布时间:2024-04-30 10:35:10
标签:vue,data,数据
场景:购物车增加商品数量同时更新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


猜你喜欢
- 本文讲述了Python检测网络延迟的代码。分享给大家供大家参考,具体如下:#!/usr/bin/env python # coding: u
- 最近无意中接触到了一篇文章,里面写了一个SQL的用法,是with...as,中午抽空记录一下用MySQL试了一下,发现并不支持该语法(版本:
- 模块导入的规范模块是类或函数的集合,用于实现某个功能。模块的导入和Java 中包的导入的概念很相似都使用import语句。在Python中,
- ul设置浮动后不能自适应高度,也就是不能撑开父容器,不能自适应内容的高度。解决方法是在ul结束标签前加个清除浮动。 &
- 本文实例为大家分享了Python+OpenCV实现图像的全景拼接的具体代码,供大家参考,具体内容如下环境:python3.5.2 + ope
- degrees()方法从弧度转换到度角x语法以下是degrees()方法的语法:degrees(x)注意:此函数是无法直接访问的
- 解决SQL2000最大流水号的两个好方法问:请问怎样才能解决ms serer 2000 最大流水号的问题?答:我可以介绍两种方法给你:方法1
- Vue设置浏览器小图标当我们使用浏览器做开发时,我们能希望浏览器标签页能显示自己的logo小图标,这个是怎样设置的呢?第一步:准备logo图
- 在我们编程过程中,经常会用到与时间相关的各种务需求,下面来介绍 golang 中有关时间的一些基本用法,我们从 time 的几种 type
- html代码:<!DOCTYPE html><html lang="en"><head&g
- #-*- encoding: utf-8 -*-'''Created on 2014-4-24@author: Le
- 摘要:本文介绍了有关数据表的优化技巧,主要内容有,选择表的类型,打开尽量少的表,锁定表与查询速度的关系以及如何优化表以达到提高查询速度的目的
- 一、百度百科1、MySQLMySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL
- QMainWindowQMainWindow类中比较重要的方法方法描述addToolBar()添加工具栏centralWidge()返回窗口
- blob对象介绍一个 Blob对象表示一个不可变的, 原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式 b
- vue-property-decorator这个组件完全依赖于vue-class-component.它具备以下几个属性:@Componen
- 1、plotly库的相关介绍1)相关说明plotly是一个基于javascript的绘图库,plotly绘图种类丰富,效果美观;易于保存与分
- 一、获取抖音视频连接得到如下信息: “5.1 HV:/ 守门员戴手套没法系鞋带这种体育精神,值得尊敬%遇见足球 %足球 %精彩进球 %意甲
- PHP 备份 mysql 数据库的源代码,在完善的 PHP+Mysql 项目中,在后台都会有备份 Mysql 数据库的功能,有了这个功能,对
- 当你在浏览网页时,看到一个很漂亮的特效,你查看源代码时看到的是一队乱码,那多扫兴呀!根据本人的研究,总结出了三种解密方法,与大家分享!!方法