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


Posted in Javascript onNovember 07, 2019

场景:购物车增加商品数量同时更新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比较方便但是自定义指令,也是个不错的东西学习一下可能以后其他地方会用到

以上这篇vue获取data数据改变前后的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js如何取消事件冒泡
Sep 23 Javascript
node中socket.io的事件使用详解
Dec 15 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
bootstrap table复杂操作代码
Nov 01 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
详解javascript获取url信息的常见方法
Dec 19 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
Angular实现响应式表单
Aug 04 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
Jul 26 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
在React项目中使用Eslint代码检查工具及常见问题
Oct 10 Javascript
微信小程序云函数使用mysql数据库过程详解
Aug 07 Javascript
使用JS监听键盘按下事件(keydown event)
Nov 07 #Javascript
vue.js循环radio的实例
Nov 07 #Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 #Javascript
vue遍历对象中的数组取值示例
Nov 07 #Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 07 #Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 #Javascript
vue 实现v-for循环回来的数据动态绑定id
Nov 07 #Javascript
You might like
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
用客户端js实现带省略号的分页
2013/04/27 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
2016/11/02 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python 中使用 PyMySQL模块操作数据库的方法
2019/11/10 Python
python中dict()的高级用法实现
2019/11/13 Python
无工作经验者个人求职信范文
2013/12/22 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
家长对孩子的感言
2014/03/10 职场文书
工商管理本科生求职信
2014/07/13 职场文书
员工趣味活动方案
2014/08/27 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
停电通知范文
2015/04/16 职场文书
幼儿园教师管理制度
2015/08/05 职场文书