nextTick的实战常用

Vue中nextTick的实战用法:

需求:关闭弹框后默认展示首页

实例:

在这里插入图片描述

用户点击弹框后默认首页高亮显示但是不推荐使用router.push(‘/路由’),因此要使用nextTick()方法

nextTick()作用:在下次DOM更新循环结束后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的DOM(相当于调用此方法后重新渲染了dom)

nextTick= ()=>{
// 执行的操作
}

###上代码实例:

app.vue

<template>
  <router-view v-slot="{ Component }"  v-if="state.showRouter">
    <transition name="slide-left" mode="out-in">
      <component :is="Component" />
    </transition>
  </router-view>
</template>
<script setup>
  import { defineComponent, nextTick, provide, reactive, ref } from 'vue'
   const state = reactive({
      showRouter: true,
    })
    function reload() {
      // 管弹框后不展示组件
      state.showRouter = false
      // 立即重新渲染dom
      nextTick(() => {
        state.showRouter = true
      })
    }
    // vue3组件通信方式
    provide('reload', reload)

弹框.vue

// 注入刚才的reload方法
const refresh = inject('reload')
.....别处无关代码省略
// 关闭弹框
  const handleClose = () => {
    sessionStorage.setItem('dialogVisible', JSON.stringify(false))
    // 引入的reload方法别名
    refresh()
  }

以上关闭弹框回到首页且高亮的需求便完成了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值