- 博客(29)
- 收藏
- 关注
原创 【学习】响应系统
本文实现了一个简易的响应式系统,包含useState和useEffect两个核心方法。通过栈结构管理副作用依赖关系,useState返回getter/setter并自动追踪依赖,useEffect在依赖变化时执行回调并自动清理旧依赖。测试用例验证了状态更新、依赖追踪和条件依赖等场景的正确性。该实现展示了前端框架响应式更新的基本原理。
2025-09-19 15:19:26
351
原创 【学习】【js】栈数据结构
本文介绍了栈数据结构的两种实现方式:基于数组和基于对象。栈是一种后进先出(LIFO)的有序集合,主要操作包括push、pop、peek等。基于数组的实现时间复杂度为O(n),占用较多内存;基于对象的实现时间复杂度为O(1),内存占用较少。两种实现都提供了完整的栈接口,并通过相同测试用例验证了功能正确性。文章展示了完整的TypeScript代码实现及Jest测试用例。
2025-09-15 20:41:18
186
原创 【学习】vue监听属性
本文介绍了基于响应式系统的watch实现。通过接收监听源(source)、回调函数(cb)和配置选项(options),实现了对响应式数据的监听功能。watch支持传入函数或代理对象作为监听源,并提供立即执行(immediate)选项。核心原理是利用effect函数建立响应式依赖,在数据变化时通过调度器触发回调,并能处理回调函数的过期执行。示例代码展示了如何监听计算属性sum的变化,当数据变更时自动打印新旧值。
2025-09-12 09:59:56
210
原创 【学习】vue计算属性
本文介绍了响应式系统中的懒执行和计算属性实现。通过effect函数实现副作用函数的懒执行,仅在非lazy模式时立即执行。computed函数基于effect实现计算属性,通过缓存值和脏检查机制优化性能。测试案例展示了计算属性sum对data.foo和data.bar变化的响应式更新。核心代码约150字,完整实现需结合响应式系统基础。
2025-09-10 15:39:03
187
原创 【学习】vue响应系统
本文实现了一个简易的响应式系统,通过Proxy和Reflect拦截对象操作,自动追踪依赖关系。核心包括:1) 使用WeakMap构建依赖收集桶;2) 通过effect函数注册副作用函数;3) 利用track/trigger实现依赖收集和触发;4) 添加防抖机制避免重复执行。系统支持嵌套副作用函数处理,并解决了自增操作导致的无限循环问题。最终在HTML中测试,当修改响应式数据时能正确触发相关副作用函数执行。
2025-09-08 10:06:19
296
原创 【JavaScript】【学习】真值
在 JavaScript 中,真值是在布尔值上下文中,转换后的值为 true 的值。被定义为假值以外的任何值都为真值。(即所有除 false、0、-0、0n、“”、null、undefined 和 NaN 以外的皆为真值)。
2025-07-08 08:50:21
192
原创 【学习】跨站脚本
攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是。(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、在网站上动态渲染任意 HTML 是非常危险的,因为这非常容易造成。使用用户提供的 HTML 内容。
2025-07-08 07:58:27
189
原创 【初体验】【学习】Web Component
JavaScriptHTMLCSS假设您已经了解所有知识点,并且您的环境中已安装了 Node.js和npm ,我们现在可以进行下一步。通过以上步骤,我们创建了一个简单的 Web Component 项目,并使用 Webpack 进行打包和开发服务器的配置。欢迎在评论区分享您的意见和建议。
2025-01-09 16:09:25
746
原创 【初接触】【学习】编译 Rust 为 WebAssembly
Rustwasm-packjs-sysweb-sysJavaScriptHTMLCSSwebpack假设您已经了解所有知识点,并且您的环境中已安装了 Node.js和npm 以及 Rust 的完整开发工具链(包括 rustc、cargo 和 rustup),我们现在可以进行下一步。以上是对我近期探索将 Rust 编译为 WebAssembly 的总结,若有任何不准确之处,欢迎指正。
2024-12-27 10:52:08
1045
原创 【实践】深拷贝方法总结
深拷贝(Deep Copy)是指创建一个对象或数据结构的完全独立副本,使得新对象与原对象之间没有任何引用关系。对于嵌套的对象或数组,深拷贝会递归地复制每个层级的内容。本文汇总了在实践中积累的方法与经验,若其中有任何不准确或有待商榷之处,欢迎各位读者批评指正。编写自己的递归函数来遍历对象并逐层复制。/*** @description 数据类型*//*** @description 类型映射表*/]);/*** @description 判断数据类型*//**
2024-12-20 15:55:35
682
原创 【学习】HTTP
超文本传输协议(HTTP)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的客户端—服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。
2024-11-15 16:03:08
1595
2
原创 【学习】【HTML】localStorage、sessionStorage、cookie
是 Web 存储的一种形式,它允许在浏览器中存储键值对。是网站通过 Web 浏览器留在访问者电脑上的一小段信息。)API 的一部分,用于在客户端浏览器中存储数据。
2024-11-13 17:45:44
1217
原创 使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply,.ksplat文件
假设您正在现有项目中集成这些包,而该项目的构建工具为 Webpack 或 Vite。同时,您对 Three.js 和 React 有一定的了解。如果您发现有任何错误或有更好的方法,请随时留言。
2024-11-12 16:48:33
1307
原创 【学习】【HTML】HTML、XML、XHTML
HTML (HyperText Markup Language) 是一种用于创建和展示网页的标准标记语言。它由一系列的元素组成,这些元素通过标签的形式来告诉浏览器如何显示内容。HTML5 是第五个主要版本的 HTML,旨在改进 Web 应用的功能和性能。引入了许多新特性,如语义化标签、多媒体支持、表单控件、本地存储等。XML 是一种用于存储和传输数据的标记语言。强调数据的结构化表示,要求所有标签必须正确闭合,并且区分大小写。
2024-11-12 15:47:14
1209
原创 【学习】【HTML】块级元素,行内元素,行内块级元素
这与块级元素的行为形成对比,块级元素会从新的一行开始,并且其后的内容也会从新的一行开始。行内块级元素,可以与其他行内元素在同一行内显示,可以设置宽度、高度、边距和内边距,适用于创建复杂的布局。块级元素,独占一行,可以设置宽度、高度、边距和内边距,适用于定义段落、标题、列表等结构化内容。行内块级元素在布局中表现为行内元素,但可以设置宽度、高度、边距和内边距,类似于块级元素。行内元素,不独占一行,不能设置宽度和高度,适用于对文本进行标记和修饰。块级元素可以包含其他块级元素、行内块级元素,也可以包含行内元素。
2024-11-11 17:20:38
2193
原创 【学习】使用webpack搭建react项目
在日常工作中,我大多是在已有的项目基础上进行开发,而非从头构建项目。因此,我期望通过本次学习能填补我在项目初始化阶段知识的空白,与大家共同进步。在此过程中,我欢迎并感激任何指正或建议,无论是关于错误修正还是更优的解决策略,让我们相互促进,共同提升。本次搭建参考webpack官网指南,本文如有错误欢迎指出。
2024-11-05 14:38:41
546
原创 【初体验 threejs】【学习】【笔记】hello,正方体 3!
为了满足工作需求,我已着手学习 Three.js,并决定详细记录这一学习过程。在此旅程中,如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。至此已经全部完成。你好,正方体 3!如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。
2024-06-17 14:57:28
960
原创 【初体验threejs】【学习】【笔记】hello,正方体2!
为了满足工作需求,我已着手学习Three.js,并决定详细记录这一学习过程。在此旅程中,如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。在向场景添加灯光之前,我们将切换到使用物理上正确的光照强度计算。创建物理大小的场景,为了使物理上正确的照明准确,如果你的房间有 1000 公里宽,那么使用真实灯泡的数据是没有意义的!three.js 中的大小单位是米。我们之前创建的2×2×2的立方体每边长为两米。
2024-06-14 13:57:17
2193
原创 【初体验threejs】【学习】【笔记】hello,正方体!
为了满足工作需求,我已着手学习Three.js,并决定详细记录这一学习过程。在此旅程中,如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。至此已经全部完成。你好,正方体!如果出现理解偏差或有其他更佳的学习方法,请大家不吝赐教,在评论区给予指正或分享您的宝贵建议,我将不胜感激。
2024-06-13 10:27:07
1880
原创 【JavaScript】【分享】关于this
本文旨在总结实践中关于this关键字的应用经验,期待读者在评论区留言指正与补充,以促进共同学习与进步。以上是我个人实践的总结,难免有疏漏或偏差之处,诚邀各位在评论区不吝赐教,让我们一起在交流中学习成长。
2024-06-07 14:38:15
1999
2
原创 【分享】使用 Reducer 和 Context 拓展你的应用
本篇文章旨在探讨Reducer与Context在扩展应用程序中的应用技巧及其实战思路。如果你发现其中的任何错误或有更加高效的解决方案,恳请在评论区不吝赐教,共同交流进步。以上均为本人在实践探索中积累的经验总结,难免存在疏漏与不足之处。若您发现任何错误或拥有更佳的方法与见解,敬请在评论区慷慨分享,让我们在相互交流中共同进步,提升技能。
2024-06-03 14:22:36
678
1
原创 【分享】使用sheetjs导出xlsx(树形结构数据)
在工作中,我遇到了利用SheetJS库来导出xlsx文件的挑战,以下分享我的解决过程。我非常欢迎各位在评论区指正可能存在的疏漏,或是提出您认为更加高效的方法。让我们借此机会互相学习,共同成长。导出的xlsx注意请确保本机有Node.js及配套的npm(Node Package Manager)。如未安装,请访问Node.js官网(https://nodejs.org/)。建议阅读sheetjs官网,之后再继续。先安装uuid以便于生成id,命令如下:根目录下创建TreeNode.js文件/*
2024-05-11 15:22:12
1599
3
原创 【学习】从零搭建react项目(简易版)
在日常工作中,我大多是在已有的项目基础上进行开发,而非从头构建项目。因此,我期望通过本次学习能填补我在项目初始化阶段知识的空白,与大家共同进步。在此过程中,我欢迎并感激任何指正或建议,无论是关于错误修正还是更优的解决策略,让我们相互促进,共同提升。在我们正式开发之前,请确认您的计算机已安装Node.js环境,这是进行后续任务的前提。如未安装,请访问Node.js官网(https://nodejs.org/),根据您的操作系统挑选并安装最新版本。安装完毕后,通过在命令行界面分别执行node -v和。
2024-05-08 17:14:51
1451
5
原创 在React + react-konva的项目中,对一组Konva节点进行简单排序。
在最近的前端项目实战中,我遇到了一个任务,实现对一组Konva图形节点的简单排序。接下来,我将深入剖析我是如何系统地攻克这一需求的具体步骤和策略,同时,热烈欢迎各位同行针对本文中的任何疏漏或不足之处提出宝贵意见,并分享可能存在的更为优化的解决方案。需要指出的是,这里所述的方法是基于项目实际场景进行的个性化实践,旨在提供一种解决思路参考。
2024-02-21 09:37:23
433
原创 rust初体验:使用rust修改windows10注册表(一)
作为一个Rust新手,我在官网学习相关知识后动手实践Demo项目,期望通过互相交流学习共同进步,若有任何问题,还请大家不吝赐教。
2024-02-19 17:19:11
942
1
使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply
2024-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅