Jinuss's blog Jinuss's blog
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

东流

前端可视化
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 《Vue》
    • 《React》
    • 《Git》
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • 学习
  • 实用技巧
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 概览

  • 响应式系统

  • runtime运行时

  • runtime-core

    • nextTick
      • watch和watchEffect
      • provide和inject
      • schedule调度器
      • directive自定义指令
    • compiler编译

    • 《Vue3源码》笔记
    • runtime-core
    东流
    2024-07-10
    目录

    nextTick

    # 概述

    nextTick方法用于在 DOM 更新循环结束后执行延迟回调,它能够确保回调函数在 Vue 实例数据变化后的下一个 DOM 更新周期中执行,这意味着可以在回调中访问最新的 DOM。

    # 源码分析

    nextTick方法在src/runtime-core/scheduler.ts中定义,其核心逻辑是使用Promise.resolve()创建一个微任务,然后使用then()方法将回调函数添加到微任务队列中。

    function nextTick(fn) {
      const p = currentFlushPromise || resolvedPromise;
      return fn ? p.then(this ? fn.bind(this) : fn) : p;
    }
    
    1
    2
    3
    4
    编辑 (opens new window)
    上次更新: 2024/07/10, 09:30:42
    createApp 介绍
    watch和watchEffect

    ← createApp 介绍 watch和watchEffect→

    最近更新
    01
    GeoJSON
    05-08
    02
    Circle
    04-15
    03
    CircleMarker
    04-15
    更多文章>
    Theme by Vdoing | Copyright © 2024-2025 东流 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式