您好,登錄后才能下訂單哦!
這篇“Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Vue3中的watch偵聽器和watchEffect高級偵聽器怎么使用”文章吧。
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); })
立即執行傳入的一個函數,同時響應式追蹤其依賴,并在其依賴變更時重新運行該函數。如果用到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); })
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高級偵聽器怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。