美文网首页
vue3.0 watch中的 flush的作用

vue3.0 watch中的 flush的作用

作者: 如果俞天阳会飞 | 来源:发表于2022-08-10 10:01 被阅读0次

flush选项表示回调函数调用的时机,有三个值可以选择
pre:默认值,表示在dom更新前调用,比如这是你需要再改变其他数据,就使用pre,这些数据改变完一起更新dom,提高性能
post:表示dom更新完成后调用,比如你要获取dom或者子组件,跟我们之前使用nextTick的意思一样
sync:同步调用

当flush 为 post

当你更改了响应式状态,它可能会同时触发 Vue 组件更新和侦听器回调。

默认情况下,用户创建的侦听器回调,都会在 Vue 组件更新之前被调用。这意味着你在侦听器回调中访问的 DOM 将是被 Vue 更新之前的状态。

如果想在侦听器回调中能访问被 Vue 更新之后的DOM,你需要指明 flush: 'post'

<script lang="ts" setup>
const num = ref(1);
const numRef = ref<HTMLElement | null>(null);


watch(num, (news) =>{
  console.log(news)
  // 当不加 {flush: 'post'} textContent等于 1
  // 反之 textContent等于 2
  console.log(numRef.value?.textContent, 'textContent')
},{flush: 'post'});

const onToggle = () =>{
  num.value = 2;
}

</script>
<template>
  <div ref="numRef" @click="onToggle">{{num}}</div>
</template>

相关文章

  • vue3.0 watch中的 flush的作用

    flush选项表示回调函数调用的时机,有三个值可以选择pre:默认值,表示在dom更新前调用,比如这是你需要再改变...

  • 【vue3.0】vue3.0中监听路由router变化

    问题:vue3.0中的监听路由已经不能使用watch的方法 改进方式,使用onBeforeRouteUpdate ...

  • IO流中的flush(outputStream)的作用

    出现问题原因:在wifi-derect连接上后,获取到camera的预览数据之后用outputstream。wri...

  • MySQL-Innodb-buf_LRU_get_free_bl

    调用栈 LRU中的flush会从flush list中remove掉,相反flush list的flush不会从l...

  • MySQL flush privileges

    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从m...

  • vue之watch

    watch的作用 watch是vue2x中提供的一个options API,它可以帮助我们监听页面中的响应式数据,...

  • mysql flush 命令

    mysql的FLUSH句法(清除缓存)出自 FLUSH flush_option [,flush_option] ...

  • 周期性输出GPU使用情况

    watch 作用:周期性执行某一命令,并将输出显示。watch 的基本用法是:

  • vuex-基础

    目的:知道每个配置作用,根模块vue3.0的用法,带命名空间模块在vue3.0的用法1.根模块的用法定义 使用 2...

  • vue面试常见问题

    vue中动态绑定class的方式? watch和computed的区别 vue中key的作用 vue父传子 子传父...

网友评论

      本文标题:vue3.0 watch中的 flush的作用

      本文链接:https://www.haomeiwen.com/subject/skvzwrtx.html