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()方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论