vue3中的watch()怎么使用
Vue.js 3是一款流行的JavaScript框架,它提供了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()
回调函数将被执行。
以上就是vue3中的watch()怎么使用的详细内容,更多请关注其它相关文章!