- 博客(10)
- 收藏
- 关注
原创 minivue简简简新得
本文总结了mini-vue开发的核心概念:响应式系统通过Proxy实现,当数据变化时自动更新依赖项(computed)和视图(effect)。视图优化涉及diff算法提高DOM操作效率,以及nextTick解决高刷新率问题。整体实现了数据驱动视图的高效更新机制。
2025-06-25 22:17:56
111
原创 用 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
原创 总结:Promise
一个 Promise是一个代理,它代表一个在创建 promise 时不一定已知的值(从语法上来说: Promise 是一个构造函数, 2,从功能上来说: promise 对象用来封装一个异步操作并可以获取其成功/ 失败的结果值)
2025-02-18 17:17:51
1761
原创 总结:事件循环,宏任务,微任务
执行同步任务(立即执行函数等),然后遇到宏任务添加到宏任务队列,遇到微任务添加到微任务队列。在执行宏任务之前,微任务队列会被清空。这意味着每次执行宏任务时,都会先执行完所有的微任务。执行微任务队列时,如果遇到宏任务,会将其添加到宏任务队列,遇到微任务则会继续添加到微任务队列。这个过程会一直持续,直到微任务队列为空。执行宏任务队列中的任务。每次从宏任务队列中取出一个任务执行。执行过程中如果遇到宏任务,则继续将其加入宏任务队列;遇到微任务,则将其加入微任务队列中。
2025-02-08 08:44:14
1637
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅