VUE3中watch监听使用实例详解

yizhihongxing

标题:VUE3中watch监听使用实例详解

Vue 3中,使用watch监听数据变化变得更加简单和高效。下面详细讲解Vue 3中watch的使用实例。

使用watch监听简单数据变化

定义数据和watch

<template>
  <div>
    {{ number }}
  </div>
</template>

<script>
import { reactive, watch } from 'vue';

export default {
  setup() {
    const state = reactive({
      number: 0
    });

    watch(() => state.number, (newVal, oldVal) => {
      console.log(`new: ${newVal}, old: ${oldVal}`);
    });

    return {
      ...state
    };
  }
};
</script>

在上述代码中,我们创建了一个state对象,并定义了number属性。通过watch监听number属性的变化,并调用回调函数进行处理。在回调函数中,我们可以得到新值和旧值,可以根据实际情况进行操作。

改变数据值

<script>
import { reactive, watch } from 'vue';

export default {
  setup() {
    const state = reactive({
      number: 0
    });

    watch(() => state.number, (newVal, oldVal) => {
      console.log(`new: ${newVal}, old: ${oldVal}`);
    });

    const changeNumber = () => {
      state.number++;
    };

    return {
      ...state,
      changeNumber
    };
  }
};
</script>

我们添加了一个按钮,通过调用changeNumber方法改变number的值,这时候我们可以在控制台看到“new”的值在每次改变时都会打印出来。

使用watch监听深层次数据变化

定义嵌套数据和watch

<template>
  <div>
    {{ user.name }}
    {{ user.age }}
  </div>
</template>

<script>
import { reactive, watch } from 'vue';

export default {
  setup() {
    const user = reactive({
      name: 'John',
      age: 18,
      address: {
        country: 'USA',
        city: 'NewYork'
      }
    });

    // 需要添加深度监听
    watch(
      () => user,
      (newVal, oldVal) => {
        console.log(`new: ${JSON.stringify(newVal)}, old: ${JSON.stringify(oldVal)}`);
      },
      { deep: true }
    );

    const changeUser = () => {
      user.name = 'Paul';
    };

    return {
      user,
      changeUser
    };
  }
};
</script>

我们在上述代码中定义了一个user对象,在watch的回调函数中打印出user对象的值。我们需要在watch的第三个参数中添加{deep: true}来实现深层次监听。

改变深层次数据的值

<script>
import { reactive, watch } from 'vue';

export default {
  setup() {
    const user = reactive({
      name: 'John',
      age: 18,
      address: {
        country: 'USA',
        city: 'NewYork'
      }
    });

    // 需要添加深度监听
    watch(
      () => user,
      (newVal, oldVal) => {
        console.log(`new: ${JSON.stringify(newVal)}, old: ${JSON.stringify(oldVal)}`);
      },
      { deep: true }
    );

    const changeUser = () => {
      user.name = 'Paul';
      user.address.country = 'UK';
    };

    return {
      user,
      changeUser
    };
  }
};
</script>

我们添加了一个按钮,通过调用changeUser方法改变user对象中的值,这时候我们可以在控制台看到“new”的值在每次改变时都会打印出来,包括了深层次的数据变化。

到此,Vue 3中watch的使用实例就介绍完毕了。通过以上的示例,相信大家可以更好地掌握watch的使用方法,实现更为灵活高效的开发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VUE3中watch监听使用实例详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue的插槽原来该这样理解

    当我们在开发Vue组件时,有些情况下需要动态地处理组件内部的内容。Vue提供了插槽( Slot )来解决这个问题。通过使用插槽,我们可以将父组件中的任意内容插入子组件中的指定位置,从而实现一种非常灵活的组件封装和组合方式。 一、插槽的用法和基本原理 1.1 插槽基础使用 插槽的基本原理是以 标签作为承载位置,用于显示父组件中传递过来的内容。 下面是一个例子:…

    Vue 2023年5月29日
    00
  • 基于Vue实现HTML转PDF并导出

    HTML转PDF并导出是一个非常实用的功能,该功能可以将HTML页面转换为PDF文件,并可以将PDF文件导出到本地磁盘或者远程服务器上,实现文档的方便共享和传播。 基于Vue实现HTML转PDF并导出的完整攻略如下: 1. 安装依赖库 首先,需要安装两个重要的依赖库:html2pdf和file-saver。html2pdf是将HTML转化为PDF的主要依赖库…

    Vue 2023年5月27日
    00
  • 详解Vue的组件注册

    下面我将详细讲解“详解Vue的组件注册”的完整攻略,包括组件的注册和使用。 什么是组件注册 在Vue中,组件就是可以重复使用的模块化代码块。组件注册就是将组件注册到Vue实例中,以便在实例中使用。 组件注册的方式 Vue中有两种注册组件的方式:全局注册和局部注册。 全局注册 全局注册是将组件注册到Vue实例中的方式,可以在任何Vue实例中使用该组件。 全局注…

    Vue 2023年5月27日
    00
  • vue如何定义全局变量和全局方法实例代码

    下面我将详细讲解Vue如何定义全局变量和全局方法的实例代码。 定义全局变量 在Vue中,定义全局变量可以通过Vue的原型挂载属性的方式,以下是具体实现步骤: 首先在Vue实例化之前,通过Vue的原型注册全局属性: Vue.prototype.$globalVariable = ‘global_variable’; 这个例子中注册了一个名为$globalVar…

    Vue 2023年5月28日
    00
  • Vue中的异步组件函数实现代码

    Vue中的异步组件函数实现可以通过工厂函数来实现。在该工厂函数中,可以使用动态导入实现异步加载组件,以提高网站性能并减少首屏加载时间。 下面我们来介绍一下具体实现步骤: 步骤一:定义组件 首先,我们需要先在 Vue 中定义一个组件。可以通过以下代码来实现: <template> <div> <h2>{{ title }}&…

    Vue 2023年5月28日
    00
  • Vue3 Vant组件库使用过程中的避坑点

    下面是详细讲解Vue3 Vant组件库使用过程中的避坑点的完整攻略: 1. 导入组件时注意组件名称 在使用Vant组件库时,要注意组件名称的大小写问题。在Vue3中,组件名称必须采用小写字母加横线的形式。而在Vant组件库中,组件名称采用的是带有大写字母的驼峰式命名。这就需要我们在使用Vant组件时进行一些转换。 例如,在使用Tab栏组件时,如果我们想使用命…

    Vue 2023年5月29日
    00
  • Vue CLI 3.x 自动部署项目至服务器的方法

    这里我为大家讲解如何使用Vue CLI 3.x自动部署项目至服务器的详细步骤。 什么是Vue CLI 3.x自动部署? Vue CLI 3.x自动部署是指通过Vue CLI 3.x提供的自动化工具,将项目自动部署到远程服务器上。使用起来相当方便快捷,可以极大地提高团队的开发效率。 准备工作 在使用Vue CLI 3.x自动部署功能之前,需要先安装好以下软件:…

    Vue 2023年5月28日
    00
  • Vue中ref、reactive、toRef、toRefs、$refs的基本用法总结

    以下是Vue中ref、reactive、toRef、toRefs、$refs的完整攻略: 1. ref ref 可以将组件或DOM元素在父组件中进行标识。同时,也可以在父组件中使用 $refs 访问到子组件或DOM元素。使用ref的方式如下: <template> <div> <input type="text&quo…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部