首页 > 其他分享 >Vue3 watch 监听对象数组中对象的特定属性

Vue3 watch 监听对象数组中对象的特定属性

时间:2023-04-20 16:58:03浏览次数:41  
标签:checked 对象 watch 数组 Vue3 监听 属性

Vue3 watch 监听对象数组中对象的特定属性

在 Vue 3 中,可以使用 watch 函数来监听对象数组中对象的特定属性。可以通过在回调函数中遍历数组来检查对象的特定属性是否发生变化,并在变化发生时执行相应的操作。

一、监听对象的特定属性

例如,假设有一个名为 items 的对象数组,其中每个对象都有一个名为 checked 的布尔属性和一个名为 name 的字符串属性,需要监听 checked 属性的变化,并在变化发生时执行相应的操作,可以使用以下代码:

import { ref, watch } from "vue";

export default {
  setup() {
    const items = ref([
      { name: "item1", checked: false },
      { name: "item2", checked: true },
      { name: "item3", checked: false },
    ]);

    watch(
      () => items.value.map((item) => item.checked),
      (newVal, oldVal) => {
        console.log(`checked values changed from ${oldVal} to ${newVal}`);
      }
    );

    return {
      items,
    };
  },
};

在上面的例子中,使用 ref 函数创建一个名为 items 的响应式对象数组,并在其内部嵌套了一个对象,该对象具有两个属性 namechecked。然后,使用 watch 函数来监听数组中所有对象的 checked 属性的变化,并在回调函数中遍历数组,检查所有 checked 属性的值是否发生变化,当发生变化时,打印一条消息到控制台。

二、监听某个具体对象的特定属性

如果需要监听的是某个具体对象的属性,可以使用对象的索引来访问该对象的属性,并使用该属性作为 watch 函数的第一个参数进行监听,例如:

import { ref, watch } from "vue";

export default {
  setup() {
    const items = ref([
      { name: "item1", checked: false },
      { name: "item2", checked: true },
      { name: "item3", checked: false },
    ]);

    watch(
      () => items.value[0].checked,
      (newVal, oldVal) => {
        console.log(`item1 checked changed from ${oldVal} to ${newVal}`);
      }
    );

    return {
      items,
    };
  },
};

在上面的例子中,使用 watch 函数来监听数组中第一个对象的 checked 属性的变化,并在回调函数中打印一条消息到控制台。

总之,使用 watch 函数和数组的 map 函数或对象的索引可以很方便地监听对象数组中对象的特定属性,并在变化发生时执行相应的操作。

标签:checked,对象,watch,数组,Vue3,监听,属性
From: https://www.cnblogs.com/yuzhihui/p/17337389.html

相关文章

  • java创建对象的几种方法
    Java一共有5种方法可以来创建对象例如对象User;使用new的方式来创建对象,newUser(),这种方法使用了构造器2.使用class的newInstance()例如:Useruser=User.class.newInstance();这种方法也使用了构造器3.使用Constructor类的newInstance()方法创建对象,例如:Useruser=......
  • 09-内置对象扩展:Set数据结构
    title:09-内置对象扩展:Set数据结构publish:trueSet数据结构Set数据结构的介绍ES6提供了新的数据结构Set。Set类似于数组,但成员的值都是唯一的,没有重复的值。Set的应用有很多。比如,在H5页面的搜索功能里,用户可能会多次搜索重复的关键字;但是在数据存储上,不需要存......
  • Vue3+TS+Node打造个人博客(后端架构)
    在使用Express搭建后端服务时,主要关注的几个点是:路由中间件和控制器SQL处理响应返回体数据结构错误码Web安全环境变量/配置路由和控制器路由基本上是按模块或功能去划分的。首先是按模块去划分一级路由,各个模块的子功能相当于是用二级路由处理。简单举个例子,/article......
  • vue全家桶进阶之路43:Vue3 Element Plus el-form表单组件
    在ElementPlus中,el-form是一个表单组件,用于创建表单以便用户填写和提交数据。它提供了许多内置的验证规则和验证方法,使表单验证更加容易。使用el-form组件,您可以将表单控件组织在一起,并对表单进行验证,以确保提交的数据符合预期的格式和要求。该组件具有以下特性:支持内置......
  • 在运行时打印变量或对象类型的函数
    评:gettype()能显示一个变量的类型,比如“boolean”,“integer”,“double”,“string”,“array”,“object”等。get_class()能显示是哪一个类。instanceo()和java类似,判断是否是某个类的实例。......
  • 软件开发中的面向对象设计原则和模式
    软件开发中的面向对象设计原则和模式是指在软件设计过程中,遵循一些通用的、经过验证的、有利于提高软件质量和可维护性的指导原则和实践方法。面向对象设计原则和模式的目的是实现高内聚、低耦合、可复用、可扩展、可测试的软件系统。面向对象设计原则是指在定义类、接口和继承......
  • vue3微信公众号商城项目实战系列(12)项目发布到服务器上
    本篇介绍如何将vue3项目打包发布到服务器上,然后在微信公众号上打开。vue3发布之前需要对项目进行编译,编译时会在项目根目录下创建dist文件夹,编译后的文件会存放在这里。 在编译之前,我们在public目录下建一个config.js的文件,里面放如下的代码:constconfig={baseUr......
  • 第六章 面向对象编程
    6.1初识面向对象6.1.1面向过程&面向对象面向过程思想步骤清楚,第一步做什么,第二步做什么面向过程处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独的思考。最后,才对某个分类下的细节进行面......
  • Vue3 toRef与toRefs
    视频直接用ref是创建新的对象10.toRef作用:创建一个ref对象,其value值指向另一个对象中的某个属性。语法:constname=toRef(person,'name')应用:要将响应式对象中的某个属性单独提供给外部使用时。扩展:toRefs与toRef功能一致,但可以批量创建多个ref对象,语法......
  • Vue3 自定义hook
    视频9.自定义hook函数什么是hook?——本质是一个函数,把setup函数中使用的CompositionAPI进行了封装。类似于vue2.x中的mixin。自定义hook的优势:复用代码,让setup中的逻辑更清楚易懂。componentsDemo.vue<template> <h2>当前求和为:{{sum}}</h2> <button@clic......