在 Vue.js 中,使用 watch 监听data变量如:对象属性/data变量

这篇具有很好参考价值的文章主要介绍了在 Vue.js 中,使用 watch 监听data变量如:对象属性/data变量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 watch 监听对象属性

在 Vue.js 中,使用 `watch` 监听对象属性的变化时,应该将属性名作为字符串传递给 `watch` 选项。

示例如下:

```javascript

watch: {
  'addform.isCheck1': function(newValue) {
    console.log(newValue);
    var quantity = this.addform.quantity;
    if (quantity % 2 === 0) {
      quantity = quantity / 2;
    } else {
      quantity = (quantity - 1) / 2;
    }
    this.updateAddChuZhenForm("上午", quantity, newValue);
  },
  'addform.isCheck2': function(newValue) {
    var quantity = this.addform.quantity;
    if (quantity % 2 === 0) {
      quantity = quantity / 2;
    } else {
      quantity++;
      quantity = quantity / 2;
    }
    this.updateAddChuZhenForm("下午", quantity, newValue);
  }
},

updateAddChuZhenForm函数

//检查数组中是否已存在具有相同 sign 标识的对象。如果存在,它会更新对象的选中状态;如果不存在,它会添加一个新对象。如果取消选中,它会在数组中查找并删除相应的对象。
    updateAddChuZhenForm(sign, quantity, isChecked) {
      console.log(quantity);
      const existingIndex = this.addChuZhenForm.findIndex(
        (obj) => obj.sign === sign
      );

      if (isChecked) {
        if (existingIndex === -1) {
          this.addChuZhenForm.push({
            department_id: this.addform.department_id,
            room_id: this.addform.room_id,
            doctor_id: this.addform.doctor_id,
            inquiry_time: this.addform.inquiry_time,
            quantity: quantity,
            sign: sign,
          });
        }
      } else {
        if (existingIndex !== -1) {
          this.addChuZhenForm.splice(existingIndex, 1);
        }
      }
    },

现在,当 `isCheck1` 或 `isCheck2` 的值发生变化时,相应的 `watch` 函数将被触发。
```

watch监听data变量

如果你想要监听一个普通变量,而不是 Vue 实例的属性,你可以使用 `watch` 选项以及直接在 `data` 中声明这个变量。

比如:如果你想监听一个名为 `variableToWatch` 的变量,可以这样做:

```javascript

data() {
  return {
    // 其他的data属性
    variableToWatch: false,
  };
},
watch: {
  variableToWatch(newValue) {
    // 在这里可以处理变量变化的逻辑
    console.log('变量的值变为:', newValue);
  }
},

在上述例子中,我们在 `data` 中声明了一个变量 `variableToWatch`,并在 `watch` 选项中监听了它的变化。当 `variableToWatch` 的值发生变化时,相应的 `watch` 函数将被触发。
```

如果你希望在组件加载后就立即监听该变量,你可以在 `created` 生命周期钩子中手动调用一次 `watch` 函数:

```javascript

created() {
  this.$watch('variableToWatch', (newValue) => {
    console.log('变量的值变为:', newValue);
  });
}

这样,在组件创建后,`variableToWatch` 的初始值也会被监视。
```文章来源地址https://www.toymoban.com/news/detail-707381.html

到了这里,关于在 Vue.js 中,使用 watch 监听data变量如:对象属性/data变量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue watch监听对象 新旧值一样

    废话不多说,直接上代码 通过打印最后发现一个问题,watch中的新旧值一样 解决方案 通过computed剥离与原数据的引用关系

    2024年02月12日
    浏览(39)
  • Vue-watch 侦听对象属性

    Vue 的 watch 侦听器格式有两种: 方法格式 和 对象格式 的侦听器。 方法格式的侦听器只能 监听简单数据类型 ,如: Number、String 、… 无法监听对象属性的变化,也不能在进入页面时,自动触发; 对象格式的侦听器可以监听 对象属性 的变化。在一定条件下,载入页面时,也

    2024年02月02日
    浏览(41)
  • Vue.js 中的 watch 属性详解

    在 Vue.js 中, watch 属性是一种非常重要的属性,它可以监听 Vue 实例中指定的数据变化,并在数据发生变化时执行相应的操作。本文将对 Vue.js 中的 watch 属性进行详细的介绍,并附上相关的代码示例。 在 Vue.js 中, watch 属性被定义为一个对象,它可以用来监听 Vue 实例中的数

    2024年02月07日
    浏览(44)
  • vue动态监听对象除某个属性之外的所有属性

    需求:data对象,除了a属性,其他属性值发生变化,触发搜索条件。 mounted(){ let handler= ()={ //触发变化之后的处理函数 this.search() } //监听a属性之外,其他属性的变化 Object.keys(this.data) .filter((item)=![‘a’].includes(item)) .forEach(el={ this.$watch(vm=vm.data[el],handler,{ deep:true }) }) }, data() {

    2023年04月23日
    浏览(54)
  • vue中使用watch监听同时监听两个数据

    使用场景,创建一个子组件,父组件会向子组件中穿递一个状态 - \\\"status\\\" ,子组件需要同时监听this.$route.params中的值和status,然后再去调方法,所以需要同时监听

    2024年02月11日
    浏览(44)
  • Vue连接WebSocket后,监听消息并读取消息内容(onmessage事件),解决将内容赋值到data的属性失败的问题

    技术栈 前端Vue (包括一些组件、中间件) 后端分布式微服务 这里就不再详述后端是怎么开发通信服务端的了,因为我主要是后端开发,前端开发花的时间几乎是后端的两倍还要多( 其实比较简单,只是自己前端真的不得行 🤪) 最近在开发项目里的一个IM(实时通信)模块

    2023年04月22日
    浏览(39)
  • 20230628----重返学习-自定义指令的玩法和作用-对象新增属性不能响应的问题-Vue组件中的data属性-Vue生命周

    面试题:自定义指令的玩法和作用 面试题:Vue怎么用 vm.$set() 解决对象新增属性不能响应的问题 ? 面试题:Vue 组件中的 data 为什么必须是函数? 面试题:谈谈你对 Vue2 生命周期的理解? 面试题:简单说一下 $nextTick 的作用及实现原理? 面试题:computed 和 watch 的区别和运用

    2024年02月11日
    浏览(59)
  • vue watch监听多个数据

    项目驱动 在自己工作的某个项目中,之前基本都是使用watch监听单个数据。 但是后面在一个echarts的项目中,使用了三个echarts图表,而三个图表需要根据用户的选择条件同时更新,而后端传过来的数据我们需要分割成两个数组,这个时候,单独监听一个数组已经达不到项目需

    2024年02月15日
    浏览(36)
  • vue watch监听数据变化

    监听数据变化,在Vue中是通过侦听器来实现的,你也可以将它理解为监听器,时刻监听某个数据的变化 这一次我们要添加的是watch属性。下面我们先来眼熟一下侦听器的添加位置: 侦听器更多的是用在异步操作中,所谓异步操作就是数据返回有所延迟的操作,比如说我们要请

    2024年02月12日
    浏览(44)
  • Vue2 Watch监听

    在Vue2中,我们可以使用watch来监听一个数据的变化,并且在数据变化时执行一些操作。这个特性是Vue2非常强大的一个功能,可以帮助我们监控一个或多个数据的变化,然后做出相应的反应。 要使用watch,我们需要在Vue组件的选项中声明一个watch对象,如下: watch对象的每个属

    2024年02月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包