91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用

發布時間:2022-08-08 15:32:06 來源:億速云 閱讀:198 作者:iii 欄目:開發技術

這篇“Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用”文章吧。

1watch偵聽器

watch 需要偵聽特定的數據源,并在單獨的回調函數中執行副作用

  • watch第一個參數監聽源

  • watch第二個參數回調函數cb(newVal,oldVal)

  • watch第三個參數一個options配置項是一個對

    •   {

    •   immediate:true //是否立即調用一次

    •   deep:true //是否開啟深度監聽

    •   }

監聽Ref 案例:

import { ref, watch } from 'vue'
  
let message = ref({
    nav:{
        bar:{
            name:""
        }
    }
})
watch(message, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('舊的值----', oldVal);
},{
    immediate:true,
    deep:true

監聽多個ref 注意變成數組:

import { ref, watch ,reactive} from 'vue'
let message = ref('')
let message2 = ref('')
  
watch([message,message2], (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('舊的值----', oldVal);
})

監聽Reactive:使用reactive監聽深層對象開啟和不開啟deep 效果一樣

import { ref, watch ,reactive} from 'vue'
let message = reactive({
    nav:{
        bar:{
            name:""
        }
    }
})
watch(message, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('舊的值----', oldVal);
})

監聽reactive 單一值

import { ref, watch ,reactive} from 'vue'
let message = reactive({
    name:"",
    name2:""
})
watch(()=>message.name, (newVal, oldVal) => {
    console.log('新的值----', newVal);
    console.log('舊的值----', oldVal);
})

2watchEffect高級偵聽器

立即執行傳入的一個函數,同時響應式追蹤其依賴,并在其依賴變更時重新運行該函數。如果用到message 就只會監聽message 就是用到幾個監聽幾個 而且是非惰性 會默認調用一次。

let message = ref<string>('')
let message2 = ref<string>('')
 watchEffect(() => {
    //console.log('message', message.value);
    console.log('message2', message2.value);
})

清除副作用:就是在觸發監聽之前會調用一個函數可以處理你的邏輯例如防抖

import { watchEffect, ref } from 'vue'
let message = ref<string>('')
let message2 = ref<string>('')
 watchEffect((oninvalidate) => {
    //console.log('message', message.value);
    oninvalidate(()=>{
         
    })
    console.log('message2', message2.value);
})

停止跟蹤 watchEffect 返回一個函數 調用之后將停止更新

const stop =  watchEffect((oninvalidate) => {
    //console.log('message', message.value);
    oninvalidate(()=>{
  
    })
    console.log('message2', message2.value);
},{
    flush:"post",// pre:組件更新前執行;sync:強制效果始終同步觸發,post:組件更新后執行
    onTrigger () { //onTrigger  可以幫助我們調試 watchEffect
  
    }
})
stop()

以上就是關于“Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

玛多县| 邓州市| 龙井市| 西青区| 故城县| 理塘县| 彭州市| 瑞金市| 蒙城县| 日喀则市| 婺源县| 营山县| 句容市| 醴陵市| 银川市| 花莲市| 讷河市| 灵寿县| 满洲里市| 望奎县| 明水县| 宁河县| 浪卡子县| 贞丰县| 十堰市| 旌德县| 武功县| 中牟县| 密云县| 大荔县| 霍邱县| 轮台县| 寻乌县| 广东省| 沁源县| 洪洞县| 南通市| 朔州市| 牙克石市| 吴旗县| 宜川县|