vue3中的watch()的用法和具体作用

 更新时间:2023年04月24日 10:35:25   作者:_XU  
这篇文章主要介绍了vue3中的watch()的用法和具体作用,通过合理和熟练使用watch()方法,开发者可以更加高效地完成前端开发工作,需要的朋友可以参考下

Vue.js 3是一款流行的JavaScript框架,它提供了watch()方法来监听组件数据的变化。在本文中,我们将详细介绍Vue.js 3中watch()的用法和具体作用。

一、Vue3中watch()的用法

在Vue.js 3中,watch()方法可以用于监听单个数据、多个数据以及获取到新旧值的情况。以下是watch()的基本使用方式:

import { watch, ref } from 'vue'

export default {
  setup() {
    const count = ref(0)

    watch(count, (newVal, oldVal) => {
      console.log(`New: ${newVal}, Old: ${oldVal}`)
    })

    return {
      count
    }
  }
}

在上面的代码中,我们定义了一个ref类型的变量count,并使用watch()方法监听count变量的变化。当count变量的值发生变化时,watch()回调函数将被执行,并将新值和旧值作为参数传递给该函数。

除了单个变量的监听,watch()还可以监听多个变量的变化,以及获取旧值/新值的情况。

多个变量的监听:

watch(
  [count1, count2],
  ([newCount1, newCount2], [oldCount1, oldCount2]) => {
    console.log(
      `New count1: ${newCount1}, Old count1: ${oldCount1},
      New count2: ${newCount2}, Old count2: ${oldCount2}`
    )
  }
)

获取新旧值:

watch(
  [count1, count2],
  ([newCount1, newCount2], [oldCount1, oldCount2]) => {
    console.log(`New count1: ${newCount1}, Old count1: ${oldCount1}`)
    console.log(`New count2: ${newCount2}, Old count2: ${oldCount2}`)
  },
  { deep: true }
)

在这个例子中,我们传递了一个选项对象,用于开启深层监听。这种方式可以使watch()监听的变量案例更加庞大复杂。

二、Vue3中watch()的作用

watch()方法在Vue.js 3中有着非常重要的作用,它可以帮助我们监听数据的变化,并按需执行一些任务。

比如,在前端开发中经常遇到监听用户输入框的情况,当用户输入内容变化时,我们需要实时更新展示相关的内容。比如,当输入框内容为空时,隐藏某个组件,当输入框内容不为空时,显示某个组件。

import { watch, ref } from 'vue'

export default {
  setup() {
    const userInput = ref('')
    const showComponent = ref(false)

    watch(userInput, (newVal) => {
      if (newVal === '') {
        showComponent.value = false
      } else {
        showComponent.value = true
      }
    })

    return {
      userInput,
      showComponent
    }
  }
}

在上面的代码中,我们监听了用户输入框的变化,并根据用户输入框的值展示/隐藏组件。

watch()方法还可以实现更多复杂的功能,比如异步获取数据并在数据更新时重新渲染页面。

三、Vue3中新引入的监听方法watchEffect

在Vue.js 3中,watchEffect()方法被引入。watchEffect()方法与watch()方法的行为类似,但没有提供旧值和新值的访问。它可以在数据变化时自动执行回调函数。

import { watchEffect, ref } from 'vue'

export default {
  setup() {
    const count = ref(0)

    watchEffect(() => {
      console.log(`Count is: ${count.value}`)
    })

    return {
      count
    }
  }
}

在上面的代码中,我们定义了一个count变量,并使用watchEffect()方法监听该变量的变化。每当count变量的值发生变化时,watchEffect()回调函数将被执行。

四、总结

在本文中,我们详细介绍了Vue.js 3中watch()方法的用法和作用。watch()方法是Vue3框架中非常重要的一部分,它可以帮助我们监听组件数据的变化,并按需执行一些任务。通过合理和熟练使用watch()方法,开发者可以更加高效地完成前端开发工作。

到此这篇关于vue3中的watch()的用法和具体作用的文章就介绍到这了,更多相关vue3中的watch()方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue项目中的webpack-dev-sever配置方法

    vue项目中的webpack-dev-sever配置方法

    下面小编就为大家分享一篇vue项目中的webpack-dev-sever配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • vue.js组件之间传递数据的方法

    vue.js组件之间传递数据的方法

    本篇文章主要介绍了vue.js组件之间传递数据的方法,组件实例的作用域是相互独立的,如何传递数据也成了组件的重要知识点之一,有兴趣的可以了解一下
    2017-07-07
  • 利用vue-router实现二级菜单内容转换

    利用vue-router实现二级菜单内容转换

    这篇文章主要介绍了如何利用vue-router实现二级菜单内容转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Vue调用后端java接口的实例代码

    Vue调用后端java接口的实例代码

    今天小编就为大家分享一篇Vue调用后端java接口的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • antd的选择框如何增加tab选中的方法示例

    antd的选择框如何增加tab选中的方法示例

    这篇文章主要为大家介绍了antd的选择框如何增加tab选中的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Vue移动端下拉加载更多数据onload实现方法浅析

    Vue移动端下拉加载更多数据onload实现方法浅析

    这篇文章主要介绍了Vue移动端下拉加载更多数据onload实现方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • vant 中van-list的用法说明

    vant 中van-list的用法说明

    这篇文章主要介绍了vant 中van-list的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue实现无缝滚动的示例详解

    vue实现无缝滚动的示例详解

    这篇文章主要为大家详细介绍了vue非组件如何实现列表的无缝滚动效果,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • vue-cli脚手架的安装教程图解

    vue-cli脚手架的安装教程图解

    vue-cli脚手架模板是基于node下的npm来完成安装,这篇文章主要介绍了vue-cli脚手架的安装教程图解 ,需要的朋友可以参考下
    2018-09-09
  • 如何用vue封装axios请求

    如何用vue封装axios请求

    对axios进行封装以及将API接口按业务模块统一管理,有助于我们简化代码,方便后期维护。本文介绍了如何用vue封装axios请求,感兴趣的同学,可以参考下。
    2021-06-06

最新评论