- 博客(16)
- 收藏
- 关注
原创 二、Vue 响应式系统的依赖收集追踪原理
通过这种机制,Vue 实现了高效、自动化的视图更新,使得响应式系统能够精准追踪数据变化与依赖关系,轻松完成视图更新。被多个 Vue 实例依赖,Vue 的响应式系统需要确保这两个实例都更新它们的视图。这就需要“依赖收集”来记录哪些实例依赖于哪些数据,当数据变更时,通知它们更新。没有出现在视图中,所以完全没有必要触发视图更新。类用来表示一个依赖,它会记录数据被访问的位置,当数据更新时通知视图更新。的类,它的作用是记录依赖,并在数据发生变化时通知这些依赖去更新视图。实例化时会将自己赋值给。结合,实现依赖收集。
2024-11-07 12:29:36
69
原创 一、Vue 响应式系统进阶:我们来玩点“高阶魔法”
Vue.js 是一款 MVVM 框架,最大的卖点之一就是它的响应式系统。Vue 的响应式数据绑定就像是一根鱼竿,动一下数据,页面立马跟着变,仿佛背后有一位魔法师在操控。可实际上,这个所谓的“魔法”并不那么玄乎,背后真正的大脑就是响应式系统。为了让这个系统不显得那么神秘,我们今天就来拆解一下它的工作原理。理解这些原理不仅能帮你写出更优雅的代码,还能避免踩一些常见的“坑”,比如:“我明明改了值但页面就是不刷新!我们可以自己实现一个简单版的响应式数组,劫持Array。
2024-10-23 12:05:38
53
原创 JavaScript 函数缓存:程序员的脑力保温杯
函数缓存就是程序员的脑力保温杯,帮你记住计算过的结果,避免重复劳动。通过缓存机制,你可以显著提升代码的性能,减少无谓的重复计算。应用场景非常广泛,从复杂计算到 API 请求、DOM 操作、数据转换,都能通过缓存来优化性能。下次写代码时,不妨给你的函数加个缓存,让它变得更聪明、更高效!要是日常生活中也能有个缓存功能,估计我们早就能变成记忆超人了。
2024-10-21 17:23:40
959
原创 JavaScript 尾递归:程序员的省电模式
咱们先整点正经的,尾递归就是在递归函数的最后一步直接返回递归结果。简单来说,尾递归函数不会在递归调用之后再有额外的运算,它只是在递归中不断调用自己,最后一次的结果直接当作返回值,类似于"你们聊,我走了"。return acc;上面这个代码,看着是不是有点酷?递归函数的最后一步是调用自己,并直接返回。这种操作简直像那种朋友群里最后一个发消息,然后默默退出群聊的人!你瞅,递归完事儿就走人,连一丝痕迹都不留。经典递归中,还会在返回值上做操作,而尾递归表示:“操作啥?我可忙着跑路呢!
2024-10-21 17:06:15
625
原创 JavaScript 闭包,了解一下?——“我和闭包不得不说的故事”
闭包的定义:函数 + 外部环境。闭包的特点:函数内部可以访问外部变量,即使外部函数已经执行完毕。使用场景:数据隐藏、工厂函数、异步操作等。常见坑:闭包捕捉的是引用,处理循环变量时要小心!闭包这个技能点用好之后,能让你在 JavaScript 的冒险之旅中游刃有余。正所谓:“闭包一出,谁与争锋。”所以,赶快掌握这个黑科技,成为写代码的传火大侠吧!(热梗:“兄弟,闭包是个好东西,快学!不然代码就成了‘bug温床’”)
2024-10-20 14:55:39
870
原创 CSS 选择器与优先级:揭秘谁才是“老大”
你是不是常常在写 CSS 时,觉得自己像在操控一个小型宫斗剧?各路选择器纷纷上线,争相抢占样式的 "C 位",而我们这些“编剧”有时候也会一脸懵:到底谁的优先级高?究竟谁能继承我的“家业”?别急,今天这篇文章就带你看看这场 “选美大赛” 的规则,搞清楚谁才是真正的“老大”!
2024-10-18 18:40:52
978
原创 JavaScript 执行上下文和执行栈:从“打怪升级”到“栈里打卡”
执行上下文就像你玩游戏时的“角色设定”。你每进入一个副本(函数),系统就要先给你分配身份:你是谁,你带了什么技能,还有当前副本的环境是什么。
2024-10-17 16:03:42
336
原创 JavaScript事件循环:一杯咖啡的时间,搞懂主线程都经历了什么?
事件循环?这是个啥? 想象一下,你正在排队买奶茶,而奶茶店只有一个店员,奶茶的制作流程就好比 JavaScript 的执行过程。店员(主线程)要按照顺序来制作每一杯奶茶(任务)。但奶茶订单有时候会很复杂,比如有的订单(异步任务)要求“过会儿再加料”,于是店员就会先做简单的,等时间到了再处理复杂的。
2024-10-16 17:53:36
1265
原创 AJAX 是啥?这“异步”的锅你背不背?
AJAX,现在可没人非得用 XML 了,JSON 才是它的真爱。用简单的白话讲,AJAX 就是:你在和后端谈恋爱,不用满世界宣布,只偷偷发个私信(请求),然后对方回你一条小甜话(响应),整个网页都不用重刷!这叫“低调的浪漫”。
2024-10-16 15:05:22
393
原创 rem和vw、vh这对“最佳拍档”,打工人网页适配的救星!
CSS世界的“代码搬砖人”们,今天我们来聊聊两个CSS界的黄金搭档:rem和vw/vh。它们就像那对总被网友调侃的“最会站队的朋友”,一个负责“精确”、一个负责“灵活”。当他们一起出场,真的是“能文能武,适配全场”!
2024-10-15 15:36:08
353
原创 CSS 中玩转 rem:尺寸单位笑着用!
CSS 是前端的魔法棒,但光有样式还不够,尺寸单位也是个绕不过的坎!今天我们来聊聊 rem,这个前端圈的“真大哥”,如何在布局中实现灵活的响应式设计。
2024-10-14 12:46:45
2126
原创 深拷贝与浅拷贝:JavaScript 里的“复制粘贴”大作战
在 JavaScript 的世界里,复制对象就像是在玩“传声筒”游戏,听着听着就乱了套。今天,我们要聊聊两个“复制”大法:深拷贝和浅拷贝。他们就像是“有深度的朋友”和“表面交情的朋友”,那么到底有什么区别呢?让我们一起看看!
2024-10-13 17:25:05
418
原创 浏览器引擎的神操作:如何让HTML、CSS和JavaScript完美打配合,带你飞!
浏览器不仅仅是个用来刷网页的工具,它背后有着复杂的运作机制,类似一位完美的“舞台总监”,时刻指挥着HTML、CSS、JavaScript三位“演员”一起表演,确保舞台(网页)能顺利呈现给观众(用户)。今天我们要深挖浏览器引擎的幕后功臣,揭开一些隐藏的技术细节,比如 V8引擎 如何执行JavaScript、重排(回流) 和 重绘 是如何触发的,以及如何优化这些过程。
2024-10-13 16:43:12
676
原创 JS经典面试题:JS原型、原型链
JS是一种基于原型的语言,每一个对象都有一个原型对象,当你试图寻找某个属性时,它不仅仅在该对象上面搜索,还有搜索该对象的原型,或则是该对象原型的原型,一次向上进行搜索,直到找到一个名字匹配的属性或者到达原型链尾部,则会返回一个null,如下图所示(原型链):详细讲解:JS每一个函数中都有会有一个特殊的属性,叫做原型对象prototype,原型对象主要是存放一些公共属性或者方法的,其主要作用:减少每次实例化对象中重复方法的占用内存现象。举例(ES5): function Star(nam
2022-05-27 19:13:09
7090
原创 通过案例理解防抖与节流
说明:案例是通过jQuery来操作Dom元素的,其中防抖案例(使用到了jQuery中的ajax发起jsonp请求与art-template模板渲染,后续会持续更新):淘宝搜索检索,节流案例:跟随的天使案例;通过案例可以让你清晰直观的理解防抖与节流操作。防抖:延迟n秒执行回调,若在n秒内被触发则重新计时,只执行最后一次操作经典案例:淘宝搜索栏检索案例预览效果图:通过关键字搜索会检索出相近的词组关键字代码说明:主要讲解js代码如何实现防抖操作,下文提供源码 ...
2022-05-26 17:02:00
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人