vue3中的watchPostEffect在DOM 更新后的副作用處理方案
watchPostEffectDOM 更新完成后watchEffect
1.watchPostEffect的基本用法
<template>
<div>
<h1>{{ count }}</h1>
<button @click="updateCount">修改 count</button> <br />
</div>
</template>
<script setup lang="ts">
import { ref, watchPostEffect, watchEffect } from "vue";
const count = ref(0);
// 執(zhí)行比watchPostEffect要早,因為它是在 DOM 更新之前執(zhí)行的
watchEffect(() => {
console.log(`watchEffect - ${count.value}`);
});
// 執(zhí)行比watchEffect要晚,因為它是在 DOM 更新之后執(zhí)行的
watchPostEffect(() => {
console.log(`watchPostEffect - DOM 已更新,當(dāng)前 count 值為: ${count.value}`);
});
function updateCount() {
count.value++; // 數(shù)據(jù)變化,視圖更新后,watchPostEffect 執(zhí)行
}
</script>在這個例子中:
watchPostEffect會在count改變之后,視圖更新完成后執(zhí)行回調(diào),打印出最新的count值。執(zhí)行時機(jī)始終是比watchEffect要晚的。
如圖所示:
2.watchPostEffect與watchEffect的對比
| 特性 | watchEffect | watchPostEffect |
|---|---|---|
| 執(zhí)行時機(jī) | 在響應(yīng)式數(shù)據(jù)變化后,立即執(zhí)行回調(diào)函數(shù) | 在響應(yīng)式數(shù)據(jù)變化后,DOM 更新完成后執(zhí)行回調(diào) |
| 適用場景 | 當(dāng)你希望在數(shù)據(jù)變化后立刻執(zhí)行副作用 | 當(dāng)你希望在 DOM 更新后執(zhí)行副作用,如操作 DOM 或調(diào)用第三方庫 |
| 常見用途 | 計算值、觸發(fā)數(shù)據(jù)相關(guān)的副作用 | DOM 操作、與非 Vue 的庫交互、做布局等操作 |
3. 使用場景
watchPostEffect 主要用于那些需要在 DOM 更新之后 執(zhí)行的副作用操作。這包括但不限于:
- DOM 操作:例如,調(diào)整元素的位置、大小、或者在更新后執(zhí)行的動畫。
- 第三方庫:如果你在 Vue 中使用了第三方庫(例如圖表庫、地圖插件等),而這些庫需要等到 Vue 完成 DOM 更新后再進(jìn)行渲染或者更新。
- 性能優(yōu)化:確保某些操作僅在 DOM 更新后才執(zhí)行,避免不必要的更新操作。
到此這篇關(guān)于vue3 - watchPostEffect在DOM 更新后的副作用處理的文章就介紹到這了,更多相關(guān)vue watchPostEffec 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題)
這篇文章主要介紹了Vue多頁面配置打包性能優(yōu)化方式(解決加載包太大加載慢問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01
vue2筆記 — vue-router路由懶加載的實現(xiàn)
本篇文章主要介紹了vue2筆記 — vue-router路由懶加載示例,實例分析了vue-router路由懶加載的實現(xiàn),具有一定參考借鑒價值,需要的朋友可以參考下2017-03-03
Vuex中如何getters動態(tài)獲取state的值
這篇文章主要介紹了Vuex中如何getters動態(tài)獲取state的值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
Vue 項目部署在子目錄下時hash vs history 的真實區(qū)別解析
Vue子目錄部署中,hash模式穩(wěn)定且無需后端配合,而history模式需要后端支持否則容易出問題,子目錄部署下,hash模式天生安全且頁面刷新不會404,而history模式需要正確配置Nginx才能正常工作,本文給大家介紹Vue部署在子目錄下時hash vs history區(qū)別,感興趣的朋友一起看看吧2026-01-01

