自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 minivue简简简新得

本文总结了mini-vue开发的核心概念:响应式系统通过Proxy实现,当数据变化时自动更新依赖项(computed)和视图(effect)。视图优化涉及diff算法提高DOM操作效率,以及nextTick解决高刷新率问题。整体实现了数据驱动视图的高效更新机制。

2025-06-25 22:17:56 111

原创 vue3插槽通信介绍

插槽实现通信过程的简单介绍

2025-06-25 21:53:28 325

原创 用 requestAnimationFrame 模拟 setTimeout&&用 requestAnimationFrame 模拟 setInterval

文章介绍了如何使用 requestAnimationFrame 来模拟 setTimeout 和 setInterval 的功能。对于 setTimeout 的模拟,通过记录起始时间并在每一帧检查是否达到延迟时间,若未达到则继续延后执行。对于 setInterval 的模拟,同样记录起始时间,并在每次达到间隔时间后执行回调,同时重置起始时间。此外,还提供了清除定时器的方法,以便在需要时停止执行。这种方法利用了 requestAnimationFrame 的特性,适用于需要与浏览器渲染帧率同步的场景。

2025-05-15 14:29:51 231

原创 requestAnimationFrame执行时机

文章探讨了Vue.js中的nextTick、requestAnimationFrame和setTimeout的执行顺序及其对DOM更新的影响。通过代码示例,展示了在Vue组件挂载后,如何利用nextTick确保DOM更新完成后再执行代码,以及requestAnimationFrame和setTimeout在事件循环中的不同表现。文章还解释了浏览器渲染流程,包括JavaScript执行、样式计算、布局、绘制、合成和屏幕刷新等步骤,并提供了多个代码示例来演示这些概念的实际应用。最后,文章通过输出题进一步说明了r

2025-05-15 14:28:02 339

原创 Vue3computed实现逻辑

它是lazy(懒执行)的,只有第一次访问.value的时候,才会真正执行内部的 getter。getter内部维护了一个dirty标志,默认是true,代表当前的值是“脏”的,需要重新计算。每次访问.value时,都会先检查dirty如果是true,就执行 getter,更新缓存,并把dirty设为false;如果是false,说明依赖没变,直接返回上次缓存的结果。当依赖的响应式数据发生变化时(比如改了),Vue 会通过effect的scheduler机制,把dirty重设为true。

2025-04-29 22:08:35 198

原创 Vue3/ref_ reactive 实现逻辑浅析

T} //创建proxy对象 function createProxyObject < T extends object >(raw : T , handlers : ProxyHandler < T >) : T {//加一层是不是对象的判断,防止传入基本类型 if(!!!!extends。

2025-04-29 21:39:34 337

原创 默认插槽和具名插槽和作用域插槽的简要实现

在组件初始化的时候,把父组件通过h()函数传过来第三个参数(如果是对象)的插槽内容提取出来,保存到当前组件实例上。插槽其实就是一个个函数,比如 header 插槽就是一个叫header的函数,这个函数里面写的是插槽的具体内容。我会统一把这些函数处理一下,确保它们调用后一定返回一个数组,方便后续渲染。子组件的模板中,比如写了,这意味着我们要找出名为header的插槽,并把age=20这个值传给它。在运行时,我会从当前组件实例的slots对象中取出对应的插槽函数,比如。然后用这个函数,把。

2025-04-29 21:08:18 954

原创 nextTick

实现源码如下。

2025-04-27 11:02:29 489

原创 总结:Promise

一个 Promise是一个代理,它代表一个在创建 promise 时不一定已知的值(从语法上来说: Promise 是一个构造函数, 2,从功能上来说: promise 对象用来封装一个异步操作并可以获取其成功/ 失败的结果值)

2025-02-18 17:17:51 1761

原创 总结:事件循环,宏任务,微任务

执行同步任务(立即执行函数等),然后遇到宏任务添加到宏任务队列,遇到微任务添加到微任务队列。在执行宏任务之前,微任务队列会被清空。这意味着每次执行宏任务时,都会先执行完所有的微任务。执行微任务队列时,如果遇到宏任务,会将其添加到宏任务队列,遇到微任务则会继续添加到微任务队列。这个过程会一直持续,直到微任务队列为空。执行宏任务队列中的任务。每次从宏任务队列中取出一个任务执行。执行过程中如果遇到宏任务,则继续将其加入宏任务队列;遇到微任务,则将其加入微任务队列中。

2025-02-08 08:44:14 1637 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除