首頁 > web前端 > Vue.js > vue3中的watch()怎麼使用

vue3中的watch()怎麼使用

WBOY
發布: 2023-05-10 12:10:11
轉載
10555 人瀏覽過

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()怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板