nextick的使用

文章讲述了Vue中nextTick的作用,即在数据更新后等待DOM刷新。它用于确保在DOM更新之前或之后执行某些操作。通过例子展示了如何在Vue组件中使用nextTick以及其背后的Promise机制。
摘要由CSDN通过智能技术生成

vue官网文档是这样解释这个API的:等待下一次DOM刷新的工具。

这句话的解释是:vue本身是异步渲染的,当数据更新时,DOM并不会及时更新,而是会放在一个队列里,等待下一次"tick",然后一起执行。

nextTick的使用

当我们想要获取下一次更新时的DOM,就可以使用nextTick。可以传递一个回调函数作为参数,或者直接使用await

<div id="app">
        <button id="counter" @click="increment">{{message}}</button>
</div>
    
    <script>
        const { createApp, ref, nextTick } = Vue

        const App = createApp({
            setup() {
                const message = ref("你好");
                async function increment() {
                    message.value = "暴富暴富"

                    // DOM 还未更新
                    console.log(document.getElementById('counter').textContent,"前") 

                    await nextTick()
                    // DOM 此时已经更新
                    console.log(document.getElementById('counter').textContent,"后") 
                }
                  // function increment() {
                //     message.value = "暴富暴富"

                //     // DOM 还未更新
                //     console.log(document.getElementById('counter').textContent, "前")
                //     nextTick(() => {

                //         // DOM 此时已经更新
                //         console.log(document.getElementById('counter').textContent, "后")
                //     })

                // }
                return {
                    message,
                    increment
                }

            }
        })
        App.mount("#app")

在这里插入图片描述

nextTick原理

当我们在控制台打印nexttick这个API

 console.log(nextTick())//vue3写法

我们能得到这样一个结果:
在这里插入图片描述

nextTick本身会返回一个Pomise对象,等待主进程运行完成后运行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值