响应式基础

watch函数

预计阅读时间1 分 368 views

0 前言

我们之前学习了computed,可以根据特定数据变化,进行运算。

但是computed是有局限性的,它必须依赖于它监听的那个值,并返回特定值。

但是我们watch不用,我们watch监听某个值,当这个值变化的时候,立马执行自己的方法,甚至监听的这个值可以不用参与watch自己定好的方法。

1 语法

watch(myValue, (newValue, oldValue) => {
  // 监听到数据变化时的处理逻辑
});

myValue,表示要被监听的值,newValue表示变化后的值,oldValue表示以前的值是多少,我们接下来看例子。

2 示例

<template>
  <div>
    <p>当前值为: {{ count }}</p>
    <button @click="increment">增加</button>
  </div>
</template>

<script setup>
import { watch, ref } from 'vue';

const count = ref(0);

watch(count, (newValue, oldValue) => {
  console.log(`count 发生变化,旧值为: ${oldValue}, 新值为: ${newValue}`);
});

const increment = () => {
  count.value++;
};
</script>

在这个例子中,页面上展示了 count 的值,并且每次点击按钮时,count 的值会增加。同时,watch 监听着 count 的变化,一旦 count 发生变化,就会触发 watch 中定义的逻辑,并打印出新旧值。

效果如下,

watch实力

可以看出watch既可以监控数值变化,同时还可以进行复杂逻辑的书写,是不是很厉害!

那要computed干什么?

那我们就要说到watch的最大弊端,就是没法直接返回值。

所以在赋值上面没有computed简洁高效。

3 结语

我们又学习了一个重要的语法,在vue官方教程中是放在后面才讲的,我们这里放到一块来讲解。

OK,到这里我们跟变量有关的基础语法就讲解完毕,我们开始了解精彩的vue页面语法吧!

Leave a Comment

分享此文档

watch函数

或复制链接

内容