一、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()怎么使用的详细内容。
