介绍
watch 监听指定的变量,变量发生变化时才触发回调。
watchEffect只监视自己所用到的变量,更注重执行过程。初始化时也会执行一次,无需额外配置。
基础代码
<template>
{{name}}
<button @click="name='123'">修改名字</button>
</template>
<script >
import {ref,watch,watchEffect} from "vue";
export default {
name:'Demo',
setup(){
const name =ref('张三')
return {
name
}
}
}
</script>
watch
当点击修改名字按钮时会触发回调newValue,oldValue一个新值一个旧值。
watch(name,(newValue,oldValue)=>{
console.log('检测值发生变化',newValue,oldValue)
})
watchEffect
watchEffect更注重执行的过程,只监听回调里用到的变量,无法获取旧值。初始化时也会执行一次,无需额外配置。
watchEffect(()=>{
console.log(name.value)
//监听name发生变化,拿到最新值。
//console.log(age.value)
//监听age发生变化,拿到最新值。
})