欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue WatchEffect函數創(chuàng)建高級偵聽器

 更新時間:2023年03月09日 09:04:42   作者:劍九 六千里  
watchEffect傳入的函數會被立即執(zhí)行一次,并且在執(zhí)行的過程中會收集依賴;其次,只有收集的依賴發(fā)生變化時,watchEffect傳入的函數才會再次執(zhí)行

WatchEffect高級偵聽器

在 Vue 3 中,我們可以使用 watchEffect 函數來創(chuàng)建高級偵聽器。與 watchcomputed 不同,watchEffect 不需要指定依賴項,它會自動追蹤響應式狀態(tài)的變化,并在變化時重新運行。

使用 watchEffect 函數

下面是一個簡單的示例,使用 watchEffect 函數來偵聽一個響應式狀態(tài),并在狀態(tài)變化時輸出一條消息:

import { reactive, watchEffect } from 'vue';
const state = reactive({
  count: 0,
});
watchEffect(() => {
  console.log(`Count is now: ${state.count}`);
});
// 改變狀態(tài),輸出 Count is now: 1
state.count++;

在上面的示例中,我們使用 reactive 函數來創(chuàng)建一個響應式對象 state,并使用 watchEffect 函數來創(chuàng)建一個偵聽器。watchEffect 函數接受一個函數作為參數,這個函數會被自動運行,并在其中使用響應式狀態(tài)。當其中任何一個響應式狀態(tài)發(fā)生變化時,這個函數會被重新運行。

停止偵聽

watchcomputed 不同,watchEffect 函數不會返回一個停止偵聽的函數。如果我們需要停止偵聽,我們可以將 watchEffect 的返回值設為 null,例如:

import { reactive, watchEffect } from 'vue';
const state = reactive({
  count: 0,
});
const stop = watchEffect(() => {
  console.log(`Count is now: ${state.count}`);
});
// 改變狀態(tài),輸出 Count is now: 1
state.count++;
// 停止偵聽
stop();

在上面的示例中,我們將 watchEffect 的返回值保存到一個變量 stop 中,然后在需要停止偵聽時調用這個函數。

偵聽多個狀態(tài)

如果需要偵聽多個響應式狀態(tài),我們可以在 watchEffect 函數中使用這些狀態(tài),并在函數中返回一個計算值,例如:

import { reactive, watchEffect } from 'vue';
const state = reactive({
  count1: 0,
  count2: 0,
});
watchEffect(() => {
  const sum = state.count1 + state.count2;
  console.log(`Sum is now: ${sum}`);
});
// 改變狀態(tài),輸出 Sum is now: 1
state.count1++;
// 改變狀態(tài),輸出 Sum is now: 3
state.count2 += 2;

在上面的示例中,我們使用 reactive 函數創(chuàng)建一個響應式對象 state,并在 watchEffect 函數中使用了 state.count1state.count2 兩個響應式狀態(tài),然后計算了這兩個狀態(tài)的和,并輸出了這個和。

懶執(zhí)行

computed 類似,watchEffect 函數也支持懶執(zhí)行(lazy evaluation)。如果我們將 watchEffect 的第二個參數設置為 { lazy: true },則這個函數會在第一次訪問響應式狀態(tài)時才會被運行,例如:

import { reactive, watchEffect } from 'vue';
const state = reactive({
  count: 0,
});
watchEffect(
  () => {
    console.log(`Count is now: ${state.count}`);
  },
  { lazy: true }
);
// 訪問狀態(tài),輸出 Count is now: 1
state.count++;

在上面的示例中,我們將 watchEffect 的第二個參數設置為 { lazy: true },然后在代碼中訪問了響應式狀態(tài) state.count。這時,watchEffect 中的函數才會被運行。

總結

watchEffect 函數是 Vue 3 中的一個新特性,它可以用來創(chuàng)建高級偵聽器,自動追蹤響應式狀態(tài)的變化,并在變化時重新運行。與 watchcomputed 不同,watchEffect 不需要指定依賴項,它會自動追蹤響應式狀態(tài)的變化。如果需要停止偵聽,我們可以將 watchEffect 的返回值設為 null。如果需要偵聽多個響應式狀態(tài),我們可以在 watchEffect 函數中使用這些狀態(tài),并在函數中返回一個計算值。watchEffect 函數也支持懶執(zhí)行(lazy evaluation),可以在第一次訪問響應式狀態(tài)時才會被運行。

到此這篇關于Vue WatchEffect函數創(chuàng)建高級偵聽器的文章就介紹到這了,更多相關Vue WatchEffect內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue前端實現下載文件功能

    vue前端實現下載文件功能

    這篇文章主要介紹了vue前端實現下載文件功能,本文給大家介紹多種方式,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • Vue開發(fā)手冊Function-based?API?RFC

    Vue開發(fā)手冊Function-based?API?RFC

    這篇文章主要為大家介紹了Vue開發(fā)手冊Function-based?API?RFC使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Vue 組件的掛載與父子組件的傳值實例

    Vue 組件的掛載與父子組件的傳值實例

    這篇文章主要介紹了Vue 組件的掛載與父子組件的傳值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 一文教會你vue中使用async和await

    一文教會你vue中使用async和await

    async和await作為異步函數,語法很簡單,就是在函數前面加上async 關鍵字,來表示它是異步的,下面這篇文章主要給大家介紹了如何通過一文教會你vue中使用async和await的相關資料,需要的朋友可以參考下
    2022-10-10
  • Vue3使用echarts繪制特殊樣式的折線圖和柱狀圖

    Vue3使用echarts繪制特殊樣式的折線圖和柱狀圖

    這篇文章主要為大家詳細介紹了Vue3如何使用echarts實現繪制一些特殊樣式的折線圖和柱狀圖,文中的示例代碼講解詳細,需要的小伙伴可以了解下
    2024-02-02
  • vue2項目使用sass的示例代碼

    vue2項目使用sass的示例代碼

    本篇文章主要介紹了vue項目使用sass的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 淺談vue首次渲染全過程

    淺談vue首次渲染全過程

    這篇文章主要介紹了淺談vue首次渲染全過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • vue中將el-switch值true、false改為number類型的1和0

    vue中將el-switch值true、false改為number類型的1和0

    這篇文章主要介紹了vue中將el-switch值true、false改為number類型的1和0問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例

    下面小編就為大家分享一篇vue中手機號,郵箱正則驗證以及60s發(fā)送驗證碼的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • element plus中el-upload實現上傳多張圖片的示例代碼

    element plus中el-upload實現上傳多張圖片的示例代碼

    最近寫項目的時候需要一次上傳多張圖片,本文主要介紹了element plus中el-upload實現上傳多張圖片的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01

最新評論