暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Vue.JS 3:侦听(Watch)

Nephilim 2024-03-09
58

Tips:一些记录,一些笔记



2024/03/09

SATURDAY

Who seize the opportunities, who will come true.

谁把握机遇,谁就心想事成。





01

侦听「单个数据源」


侦听单个数据源:

    <script setup>
    // 1. 导入 watch
    import { ref, watch } from 'vue'
    const count = ref(0)
    const setCount = () => {
    count.value++
    }


    // watch 侦听单个数据源
    // 2. 调用 watch 侦听变化
    watch(count, (newValue, oldValue) => {
    console.log(`Count 发生了变化,旧值为「${oldValue}」,新值为「${newValue}」`)
    })
    </script>


    <template>
    <div>
    <button @click="setCount">+{{ count }}</button>
    </div>
    </template>


    效果:


    02

    侦听「多个数据源」


    同时侦听多个响应式数据的变化,不管哪个数据发生了变化,都将执行回调。


    代码:

      <script setup>
      // 1. 导入 watch
      import { ref, watch } from 'vue'


      // 定义数据初始值
      const count = ref(0)
      const name = ref('Nephilim')


      // 修改方法
      const changeCount = () => {
      count.value++
      }
      const changeName = () => {
      name.value = "值已被修改"
      }


      // watch 侦听多个数据源
      // 2. 调用 watch 侦听变化


      watch(
      // 希望侦听的变量
      [count, name],
      (
      // 新值
      [newCount,newName],
      // 旧值
      [oldCount,oldName]
      ) => {
      console.log(
      `「count」或「name」发生了变化,旧值【count:${oldCount} name:${oldName}】,新值【count:${newCount} name:${newName}】`,
      )
      }
      )
      </script>


      <template>
      <div>
      <button @click="changeCount">修改「count」 - 当前【{{ count }}】</button>
      <hr/>
      <button @click="changeName">修改「name」 - 当前【{{ name }}】</button>
      </div>
      </template>


      效果:





      END




      温馨提示



      如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。


      文章转载自Nephilim,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论