首页 > 其他分享 >vue2,vue3同时监听多个数据变化

vue2,vue3同时监听多个数据变化

时间:2023-01-07 14:58:46浏览次数:41  
标签:value1 object1 拼接 value4 value3 vue2 vue3 监听

我是使用vue计算属性(computed)将需要监听的数据拼接在一起,再通过watch进行监听

1.vue普通写法

<template>
    <div id="app">
        <el-input v-model.number="value1" />
        <el-input v-model.number="value2" />
        <el-input v-model.number="object1.value3" />
        <el-date-picker v-model="object1.value4" type="date" value-format="yyyy-MM-DD" />
    </div>
</template>
<script>
    export default {
        name: 'app',
        data() {
            return {
                value1: 0,
                value2: 0,
                object1: {
                    value3: 0,
                    value4: '2023-01-07'
                }
            }
        },
        computed: {
            //将需要统一监听的数据进行拼接
            calculation1() {
                return this.value1 + '' + this.object1.value3 + '' + this.object1.value4
            }
        },
        watch: {
            //直接监听拼接后的数据
            calculation1(newValue, oldValue) {
                console.log('value1,value3,value4其中一个有变化')
            }
        },
    }
</script>
<style>
</style>

2.vue3组合式api写法

<template>
  <el-input v-model.number="value1" />
  <el-input v-model.number="value2" />
  <el-input v-model.number="object1.value3" />
  <el-date-picker v-model="object1.value4" type="date" value-format="YYYY-MM-DD" />
</template>
<script setup lang="ts">
import { ref, reactive, computed, watch } from 'vue'
const value1 = ref(0)
const value2 = ref(0)
const object1 = reactive({
  value3: 0,
  value4: '2023-01-07'
})
//将需要统一监听的数据进行拼接,我这里监听的 value1,object1.value3和object.value4三个数据
const calculation1 = computed(() => {
  return value1.value + '' + object1.value3 + '' + object1.value4
})
//直接监听拼接后的数据
watch(calculation1, () => {
  console.log('value1,value3,value4其中一个有变化')
})
</script>
<style>
</style>

 

翻译

搜索

复制

<iframe></iframe>

标签:value1,object1,拼接,value4,value3,vue2,vue3,监听
From: https://www.cnblogs.com/ShiQi-XiaoXiao/p/17032608.html

相关文章

  • Vue3单击新增添加新的input
     效果图: 代码:<template><div><inputtype="text"v-for="(item,i)ofitems"v-model="items[i]":key="i"@input="inp"><button@click="onAdd">......
  • Vue3 中的响应式api
    一、setup文件的认识 特点1:script中间的内容就是一个对象特点2:script在第一层定义的方法或者变量=>就是这个对象属性 =>顶层的绑定回被暴露给模板(模......
  • Vue2和Vue3实现响应式原理
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>Document</title> </head> <body> <scripttype="text/javascript"> //源数据 letpers......
  • 【Android】学习day05|简单登陆页面的实现|监听代码
    实现效果如下图所示    实现代码【部分】MainActivity.java1packagecom.example.app02;23importandroidx.appcompat.app.AppCompatActivity;4......
  • vue3+vite配置多页面
    通过配置多页面应用,从而将给子模块依赖分隔开各自加载,可以减少初始资源的请求,加快页面的访问速度。比如我们有很多H5页面,并且相互独立,比如报修,购卡,计价规则等等,那我们如......
  • vite+vue3项目在chrome中debuger源码
    在vue文件的script中打上一个debugger,本以为可以开心的debugger了,结果控制台看到的是这个样子查了一些方案,这样就可以解决了......
  • watch监听器
    watch的基本用法:  也可以用数组的方式同时监听多个 深度监听:使用ref需要开启深度监听才可以监听到里面的值使用reactive不需要开启也可以监听到里面的值,因为源......
  • netcore 容器内部监听设置localhost 外部无法访问
    情况1  由于localhost只能够在容器内部访问,所以在设置的时候改为*号,而不是固定ip。情况2  也可能由于只配置了容器和宿主机的映射,容器内部未监听端口号导致情况3......
  • vue3+ts利用el-table实现可编辑的表格
    说明在对表格数据进行操作时,如果数据项比较少,可通过自定义实现直接在表格中编辑。界面展示实现要点使用slot来自定义单元格,实现输入、选择等操作使用slot来自定义表......
  • 学习笔记——过滤器链;监听器;Servlet、Filter、Listener的注解方式开发
    2023-01-06一、过滤器链1、含义:如果出现一个请求存在多个过滤器对其过滤,出现过滤器链。在放行前,过滤器是正序执行,放行后过滤器是倒序执行。2、过滤器的顺序:是与filter-......