Vue中对watch的理解(关键是immediate和deep属性)

Vue中的watch选项可以用来监听数据的变化,并在数据变化时执行一些自定义的操作。它包括了一些属性,如immediate和deep,这些属性可以帮助我们更好地控制watch的行为。

immediate

immediate属性表示在实例被创建时,是否立即执行一次watcher回调函数。默认情况下,watch回调函数是在第一次数据变化之后执行的,但是如果需要在组件生命周期中初始化数据或触发一些初始化行为,可以通过设置immediate为true来达到目的。

示例1

下面的示例中,我们在immediate为true的情况下,对count数据进行监控,并且在回调函数中将count乘以3输出。由于immediate为true,因此在创建实例时watch回调函数会立即执行一次,输出3。当count改变时,回调函数会再次执行,此时输出修改后的count乘以3。

<template>
  <div>{{ count }}</div>
</template>

<script>
export default {
  data() {
    return {
      count: 0,
    };
  },
  watch: {
    count: {
      immediate: true,
      handler(newVal, oldVal) {
        console.log(newVal * 3);
      },
    },
  },
};
</script>

deep

deep属性表示监听对象内部的变化。默认情况下,只有监听对象本身的变化才会触发回调函数,而不会监听对象内部属性的变化。但是如果需要监听对象内部属性的变化,可以将deep属性设置为true。

示例2

下面的示例中,我们在deep为true的情况下,对obj数据进行监控,并且在回调函数中输出obj内部属性的变化。由于deep为true,因此当obj内部属性a改变时,回调函数也会执行,输出修改后的obj。

<template>
  <div>{{ obj.a }}</div>
</template>

<script>
export default {
  data() {
    return {
      obj: {
        a: 1,
        b: 2,
      },
    };
  },
  watch: {
    obj: {
      deep: true,
      handler(newVal, oldVal) {
        console.log(newVal.a, newVal.b);
      },
    },
  },
};
</script>

总的来说,watch选项是Vue非常重要的一个数据响应式机制,可以通过该选项监听数据的变化,并在回调函数中执行一些自定义的操作。immediate和deep属性可以帮助我们更好地控制watch的行为,让我们更好地应对实际的业务场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue中对watch的理解(关键是immediate和deep属性) - Python技术站

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

相关文章

  • 详解vue中使用express+fetch获取本地json文件

    下面就详细讲解如何在vue中使用express+fetch获取本地json文件的完整攻略。 简介 Vue.js是一款极易上手的渐进式JavaScript框架,而Express是一款基于Node.js的快速、灵活的Web应用开发框架。在vue中使用express+fetch获取本地json文件,可以极大地方便我们的前端开发工作,特别是在开发中使用到模拟数据以及…

    Vue 2023年5月28日
    00
  • Vue 内置指令梳理总结

    “Vue 内置指令梳理总结”是一篇介绍 Vue 框架内置指令的文章。在这篇文章中,我将会讲解 Vue 框架内置指令包括 v-model、v-show、v-if、v-for 等等的用法,以及每个指令的使用场景、注意事项等等。下面是本篇文章的详细攻略。 1. 指令的基本概念 指令是指 Vue 框架提供的一种特殊的 HTML 属性,通过以 v- 开头的命名来表示。…

    Vue 2023年5月27日
    00
  • 详解从新建vue项目到引入组件Element的方法

    下面就是关于“详解从新建vue项目到引入组件Element的方法”的完整攻略: 一、新建vue项目 首先,在命令行窗口中执行以下命令,使用vue-cli创建一个新的vue项目: vue create my-project 其中,“my-project”是你想要命名的项目名称,你可以自己调整。 执行完该命令后,会提示你选择一个vue项目的配置模板,如果你是一个…

    Vue 2023年5月28日
    00
  • 一起来看看Vue的核心原理剖析

    一起来看看Vue的核心原理剖析 简介 《一起来看看Vue的核心原理剖析》是一篇介绍Vue.js框架核心原理的文章。本文将从源码分析的角度,详细讲解Vue.js框架的核心原理。 原理剖析 Vue.js框架主要有三个重要的概念:数据驱动、组件化和响应式。下面将对这三个概念进行详细的讲解。 数据驱动 在Vue.js框架中,它使用了数据绑定的方式来实现数据驱动。而数…

    Vue 2023年5月29日
    00
  • Vue路由router详解

    Vue路由router详解 什么是路由 路由指的是根据不同的URL地址展示不同的页面内容,Vue Router是Vue.js官方的路由管理器。使用Vue Router可以很方便地实现单页面应用程序(SPA)中的多视图管理。 安装 安装Vue Router很简单,在Vue CLI中提供了预设的脚手架模板供使用者选择,其中就包括了Vue Router功能。 步骤…

    Vue 2023年5月29日
    00
  • Vue加载组件、动态加载组件的几种方式

    当使用Vue框架进行开发时,可能会遇到需要动态加载组件的情况。Vue框架提供了一些方式来满足这种需求。 加载组件的几种方式 1. 直接注册组件 Vue框架提供了全局注册和局部注册两种方式。 1.1 全局注册方式 在全局注册中,通过 Vue.component() 方法注册组件。这种方式适用于组件会在项目的不同位置多次使用。 // 定义组件: todo-lis…

    Vue 2023年5月29日
    00
  • 图解Vue 响应式流程及原理

    下面是“图解Vue 响应式流程及原理”的完整攻略。 一、前言 Vue.js是一个开源的JavaScript框架,它采用了MVVM(Model-View-ViewModel)的架构模式,能够帮助我们更加快捷地构建SPA(Single Page Application)应用程序。而响应式就是Vue.js一个非常重要的特性,它是Vue.js实现数据绑定的核心机制,…

    Vue 2023年5月27日
    00
  • Vue3+script setup+ts+Vite+Volar搭建项目

    下面详细讲解如何使用Vue3+script setup+ts+Vite+Volar搭建项目: 1. 安装Vite 首先需要安装最新的Vite,可以通过以下命令进行安装: npm install -g vite 2. 创建项目 Vite有一个快捷的命令可以帮助我们快速创建一个Vue3项目,只需要执行以下命令: npm init vite-app my-proj…

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