当前位置:网站首页 > Vue.js开发 > 正文

vue2.0中监听watch的三种写法

vue2.0中监听watch的三种写法

watch:观测Vue实例上的数据变动,对应一个对象。
键:就是需要监测的那个东西,
值:

1.可以是当键变化时执行的函数,有两个参数,第一个是变化后的值,第二个是变化前的值。
2.可以是函数名,得用单引号包裹。
3.可以是一个对象,这个对象有三个选项:

(1)handler :一个回调函数,监听到变化时应该执行的函数。
(2)deep :boolean值,是否深度监听。(一般监听时是不能监听到对象属性值的变化的,数组的变化可以听到)
(3)immediate :boolean值,是否立即执行handler函数。

watch的三种情况:
1、普通的watch:
el:'#app', data:{ 
    meter:1000, kilameter:1 }, watch:{ 
    meter:function(val){ 
    this.kilameter = val * 0.1; }, kilameter:function(val){ 
    this.meter = val *1000; } } }) 
2、数组的watch:
el:'#app', data:{ 
    arr:[1,2,3] }, watch:{ 
    arr:function(newV,oldV){ 
    console.log(newV); console.log(oldV); } } }) 
3、对象的watch:

写法一:

el:'#app', data:{ 
    obj : { 
    a:111, b:222 } }, watch:{ 
    obj:{ 
    handler:function(newV,oldV){ 
    console.log(oldV); }, deep:true } } ) 

写法二

<el-input :disabled="true" type="textarea" v-model="form.price"></el-input> 显示价格:{ 
  {$store.state.editTask.rowData.price}} <el-input type="text" v-model="newPrice"></el-input> <script> data(){ return{ newPrice: "", timer: null, form{ id:'', price:'' } } }, created() { // this.$store.state.editTask.rowData = row this.form = this.$store.state.editTask.rowData // 当前行数据 }, watch: { // 对象的监听写法 'form.price': function (val) { // newPrice(val){ this.showReason = val!== 1 }, newPrice(val){ clearTimeout(this.timer); //防抖 this.timer = setTimeout(() => { / *小数点不好控制,把控不了用户输入后是否继续输入, *所以如果输入后1秒内没有再输入则小数点就会被清掉 */ let reg = /^(0|[1-9]\d*)(\.\d{1,2})?/; //只允许输入小数点后2位 let price = val.match(reg); this.newPrice = price ? price[0] : ''; }, 1000); } }, </script> 

store定义数据

src/store/modules/editTask.js

const state = { 
    rowData:{ 
   },//当前行数据 } 
到此这篇vue2.0中监听watch的三种写法的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • vue中this.$route.query和this.$route.params & query传参和params传参的使用和区别2024-11-30 14:09:06
  • vue中,动态绑定样式——动态绑定style写法 & 动态class写法2024-11-30 14:09:06
  • Vue中失去焦点时所触发的事件2024-11-30 14:09:06
  • JSON的几种注释2024-11-30 14:09:06
  • tsconfig.json配置释义2024-11-30 14:09:06
  • vue中使用图像编辑器tui-image-editor(一)2024-11-30 14:09:06
  • vue2中,html2canvas组件的使用——实现截图并保存到本地2024-11-30 14:09:06
  • js中,数组对象操作——双层遍历-for循环之splice-删除、push-添加 & 数组中添加对象 & 删除数组中对象 & 数组中对象的参数值置空2024-11-30 14:09:06
  • vue混入实例2024-11-30 14:09:06
  • vue2中,data为什么是函数2024-11-30 14:09:06
  • 全屏图片