文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-05-17 11:06

关注

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯