自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Irene1991的博客

学如逆水行舟,不进则退。

  • 博客(368)
  • 资源 (13)
  • 收藏
  • 关注

原创 为 fnm 配置镜像源(附:fnm 安装教程)

摘要:本文针对fnm工具安装Node.js时遇到的下载问题,提供了详细解决方案。主要问题源于国外服务器访问慢,建议切换至国内镜像源(如清华大学镜像站)。

2026-01-01 02:06:56 276

原创 nodejs:nvm vs fnm 详细对比

Node版本管理工具对比指南:nvm vs fnm fnm作为新一代Node版本管理工具,在性能、易用性和跨平台支持方面全面超越传统nvm。

2026-01-01 01:01:13 828

原创 使用 Docker 的 Node.js(附:三种 Node.js 环境详细对比)

本文介绍了在Docker容器中运行Node.js应用的核心概念和优势。与传统本地安装相比,Docker化的Node.js具有环境一致性、多版本共存和项目隔离等优点。

2026-01-01 00:53:55 550

原创 已有 WSL 环境的情况下,在 Windows 本地安装 Node.js(附:VSCode 的三种工作模式)

本文介绍了在已有WSL环境下如何在Windows本地安装Node.js的三种方案:1)直接在Windows安装Node.js(推荐);2)共享WSL中的Node.js;3)双环境共存灵活切换。详细说明了每种方案的安装步骤、验证方法和配置技巧,包括环境变量设置、编辑器配置等。同时提供了VSCode的三种工作模式(双窗口独立、单一窗口切换、多文件夹工作区)以及常见问题解决方案。最佳实践建议根据项目类型选择环境,前端项目用Windows本地,需要Linux特性的项目用WSL,两个环境可并行工作。

2026-01-01 00:34:46 724

原创 VSCode 终端快捷键

VSCode终端提供多种快捷键提升效率:Tab键自动补全路径/命令,Ctrl+Space触发建议;方向键浏览建议列表,Enter确认选择。常用操作包括Ctrl+`切换终端显示,Ctrl+Shift+P打开命令面板。建议安装zsh插件或TabNine扩展增强补全功能,并在设置中启用自动建议。历史命令可通过↑键快速调用,Shift+Enter输入多行命令。这些快捷键组合能显著减少鼠标依赖,优化终端操作体验。

2026-01-01 00:13:33 182

原创 在 VSCode 中使用终端克隆 Element Plus 全流程

在 VS Code 中使用终端克隆 Element Plus 项目的完整流程

2025-12-31 15:18:13 496

原创 在 Vue3 中使用 Element Plus

ElementPlus是基于Vue3的桌面端组件库,专为企业级中后台系统设计。

2025-12-31 13:58:26 505

原创 在 Vue 3 的 setup() 函数中,this 是 undefined。

Vue3的setup()函数中this为undefined,这是Composition API的重要改变。

2025-12-31 11:29:17 205

原创 Vue 3 中的内置指令:v-memo

v-memo 是 Vue3 的内置指令,用于优化性能,通过缓存组件子树避免不必要的重新渲染。

2025-12-30 15:46:39 422

原创 Vue:useSlots 和 useAttrs 深度解析

Vue3 Composition API中的useSlots和useAttrs是处理组件插槽和属性的关键工具。

2025-12-30 15:31:11 235

原创 Vue:defineProps、defineEmits、defineExpose 深度解析

本文深度解析Vue3 <script setup> 语法中的三个核心编译器宏:defineProps、defineEmits 和 defineExpose。

2025-12-30 15:06:42 241

原创 Vue:Props 和 Emits 对比总结

Props与Emits对比摘要 核心区别:Props实现父→子单向数据流(用于配置),Emits实现子→父事件通知(用于交互)。 特性对比: 数据流:Props向下传递只读数据,Emits向上触发事件 验证:Props支持类型/默认值验证,Emits无内置验证 Vue3优化:均支持TS类型推断,Composition API提供defineProps/defineEmits 使用场景: Props:初始化配置/展示数据 Emits:用户交互反馈/状态变更通知 最佳实践: 遵循单向数据流原则 为复杂数据添加验

2025-12-30 14:54:19 791

原创 Vue 3 中编写单文件组件(SFC)的编译时语法糖:<script setup>

Vue3的<script setup>语法糖简化了Composition API的使用,主要特点包括:自动暴露顶级变量给模板、组件自动注册、使用defineProps/defineEmits声明属性和事件、通过defineExpose暴露方法。它显著减少了样板代码,支持TypeScript类型推断和顶层await,使组件开发更简洁高效。相比传统Options API,<script setup>代码量减少约30%,更适合现代JavaScript开发模式,是Vue3项目的推荐写法。

2025-12-30 14:42:10 645

原创 Vue 3 Composition API 中创建响应式数据的两个核心 API(ref 和 reactive)

Vue3 Composition API 中,ref 和 reactive 是创建响应式数据的核心 API。ref 可以包装任何类型的值,通过 .value 访问(模板自动解包),适合基本类型和需要重新赋值的变量;reactive 专为对象/数组设计,实现深层响应式,适合复杂数据结构。主要区别在于数据类型支持、访问方式和重新赋值能力。实际开发中,建议基本类型用 ref,复杂对象用 reactive,组合函数返回多值时优先使用 ref 以便解构。两者性能相当,选择应基于代码组织和开发体验。

2025-12-30 14:25:56 532

原创 Vue2 中 Options API:组织组件逻辑的主要方式

Vue2 Options API 是组织组件逻辑的主要方式,通过 data、methods、computed、watch 等选项定义组件。其优势在于结构清晰、学习成本低,适合中小型组件。但随着复杂度增加,会出现逻辑分散、复用困难等问题。Vue3 的 Composition API 通过逻辑组合解决了这些问题,使相关功能代码更集中,并提供更好的 TypeScript 支持。两者可以共存,开发者可根据项目需求选择适合的方式。

2025-12-30 14:04:06 512

原创 实用篇:vsCode 中连接 WSL 并快速开始一个 Vue3 新项目

本文介绍了使用pnpm创建Vue3项目的完整流程。

2025-12-30 13:07:53 821

原创 Bash、PowerShell 常见操作总结

本文总结了Bash和PowerShell中常见的目录操作命令。Bash部分包括cd导航、pwd查看路径、目录栈管理(pushd/popd)以及相对路径使用技巧。PowerShell部分涵盖Set-Location(cd)导航、Get-ChildItem(ls)查看内容、目录栈操作和特有的PSDrive功能。两者都支持返回上级目录、主目录和目录历史管理,但PowerShell提供了更丰富的路径处理功能,如跨平台路径操作和访问注册表等特殊存储。文章还对比了两者在路径分隔符、命令分隔符等方面的差异。

2025-12-30 10:37:18 401

原创 文档加密加水印只读分享:WPS/PPT编辑后导出PDF(附:百度网盘分享流程)

PDF和WPS是两种不同的文件格式,PDF用于固定文档展示,WPS用于文档编辑。PDF兼容性强、格式固定,适合分发;WPS可编辑性强,适合创作。两者常配合使用:WPS编辑后导出PDF分享。要将文件设为只读,可通过密码保护、属性设置或转换为PDF/图片。DOCX转PDF时需调整批注显示方式以避免丢失。PPTX可添加水印并通过母版实现全局保护。百度网盘分享需先上传文件,再生成带提取码的链接供他人下载。注意设置有效期和管理已分享内容以确保安全。

2025-12-29 15:55:51 784

原创 19万字498页的《JavaScript高级程序设计第四版》读书笔记完成了!(附:笔记下载链接)

19万字498页的《JavaScript高级程序设计第四版》读书笔记已完成并分享,文档已从docx转换为pdf格式并保留批注。笔记设置了只读权限。下载链接:百度网盘。这份元旦前完成的笔记为JavaScript学习者提供了宝贵的学习资料。

2025-12-29 15:07:43 122

原创 代码编辑器选择建议

WebStorm提供30天免费试用、教育许可和开源许可证等合法免费使用方式,建议避免破解版。HBuilderX适合uni-app和小程序开发,中文支持好但生态较封闭。微信公众号/小程序开发推荐VSCode(插件丰富)配合微信开发者工具(必备),辅以Figma、Git等工具。原生开发选VSCode+微信工具,框架开发(如Taro/uni-app)可搭配对应IDE。团队建议统一工具链,注重协作与自动化。所有工具均需正版,避免安全风险。

2025-12-29 12:08:01 742

原创 JavaScript 静态模块声明(静态分析、动态导入)

JavaScript的静态模块声明(ES6 Modules)要求在代码执行前确定模块依赖关系。核心特点包括:1)导入/导出必须在顶层作用域,不能动态生成;2)支持编译时分析,实现Tree Shaking优化;3)提供循环依赖安全处理。与CommonJS的动态加载不同,ES6模块路径必须静态确定。动态导入(import())作为补充允许运行时加载。优势包括提前错误检测、更好的代码优化和打包体积缩减。这种设计平衡了灵活性与性能,更适合大型应用开发。

2025-12-29 10:47:54 476

原创 实时集合导致的循环问题

实时DOM集合在循环操作时存在四大问题:1)循环删除元素时因集合实时更新导致漏删;2)重复计算集合长度造成性能损耗;3)索引错位引发逻辑错误;4)并发修改可能产生无限循环。解决方案包括:反向遍历、转为静态数组(推荐Array.from或展开运算符)、使用while循环或querySelectorAll获取静态集合。核心原则是避免直接操作实时集合,优先转换为静态数据后再处理,其中转为数组是最安全可靠的通用方案。

2025-12-29 09:53:10 714

原创 虚拟滚动(Virtual Scrolling)详解

虚拟滚动是一种优化大数据列表渲染性能的技术,通过仅渲染可视区域内容来提升用户体验。其核心原理是动态计算可见范围,只创建和销毁当前视窗内的DOM元素,保持页面中元素数量恒定。相比传统渲染方式,虚拟滚动能显著降低内存占用(从约10MB降至0.1MB)、加快初始渲染速度(从500ms+缩短到50ms内),并保证流畅的滚动体验(60FPS)。该技术适用于聊天记录、社交媒体Feed、大型数据表格等场景,但不推荐用于少量数据或高度不固定的项目。主流框架如React和Vue都提供了成熟的虚拟滚动解决方案。

2025-12-29 09:40:56 688

原创 Array.from() 转换为数组的实际开发场景举例

Array.from()方法在DOM操作中具有重要作用,能够将类数组对象转换为真正的数组。主要应用场景包括:1)安全操作DOM集合,避免实时集合导致的循环问题;2)批量处理元素样式和数据;3)优化大数据量DOM操作性能;4)扩展DOM集合功能,支持数组方法。通过转换为数组,开发者可以更安全、高效地操作DOM,同时获得更清晰的代码结构和更好的性能表现。在实际开发中,当需要对DOM元素集合进行复杂操作时,应优先考虑使用Array.from()进行转换。

2025-12-28 23:34:08 889

原创 实时动态 DOM 节点集合 HTMLCollection 详解(附:NodeList、返回不同集合类型的属性/方法总结、快照 )

HTMLCollection是动态实时更新的DOM节点集合,每次访问其属性或方法都会触发DOM查询,影响性能。关键特性包括:1)类数组结构但非真正数组;2)实时性导致DOM变化会立即反映;3)只读但可修改元素。与静态快照的NodeList相比,HTMLCollection在循环遍历时存在性能损耗和逻辑陷阱(如删除元素导致集合动态变化)。最佳实践:1)缓存length属性减少查询;2)优先使用querySelectorAll获取静态NodeList;3)将实时集合转为数组操作。快照机制如同时间胶囊,记录创建时

2025-12-28 23:28:10 782

原创 事件委托(Event Delegation)

事件委托是一种优化网页性能的技术,通过利用事件冒泡机制,在父元素而非每个子元素上绑定事件处理程序。这种方法减少了内存占用,提升了响应速度,特别适合处理动态添加的元素。实现时需注意验证事件目标、选择适当的委托层级,并谨慎使用事件阻止。最佳实践是在最近的公共祖先元素上处理事件,同时可使用特定选择器提高效率。事件委托能显著改善页面性能,是现代Web开发中的重要优化手段。

2025-12-28 19:52:48 550

原创 insertAdjacentHTML() 详解

insertAdjacentHTML()是DOM操作中性能优越的方法,支持四种插入位置(beforebegin/afterbegin/beforeend/afterend),比innerHTML更灵活且不会破坏现有内容。它保留了事件监听器和元素状态,兼容所有现代浏览器(包括IE5.5+)。最佳实践包括:追加内容使用beforeend、插入开头用afterbegin,同时需注意XSS防护(转义用户输入)。适用于动态列表、分页加载、实时聊天等场景,是现代Web开发推荐的高效HTML插入方式。

2025-12-28 18:33:00 656

原创 创建新DOM节点方式总结

DOM节点创建方法对比

2025-12-28 18:00:27 842

原创 Vue 如何避免 XSS 攻击等常见前端安全问题

Vue.js通过多重机制防范XSS攻击:1.默认转义文本插值内容;2.要求显式使用v-html指令处理HTML;3.自动过滤危险属性值(如javascript:协议);4.服务端渲染时自动转义内容;5.提供安全开发建议(使用净化库、验证URL等)。Vue3还增强了对动态属性的防护。关键安全原则包括:不信任用户输入、结合内容安全策略(CSP)、对动态内容进行严格验证。开发者需注意,框架提供的防护需要配合良好的安全实践才能构建真正安全的Vue应用。

2025-12-28 17:38:28 740

原创 JavaScript位操作及性能分析

JavaScript位操作在特定场景下可优化性能,但需注意其32位整数转换的特性。常见操作包括:按位与判断奇偶/标志位,按位或快速取整,异或交换变量,非运算替代indexOf检查,位移实现乘除2的幂运算。实用技巧含RGB颜色处理、判断2的幂等。需注意类型转换开销(仅支持±2^31-1范围)、可读性损失及适用场景(二进制处理、性能关键循环)。现代JS引擎已高度优化,建议优先保证代码清晰,仅在必要场景使用位操作。

2025-12-27 00:37:35 885

原创 达夫设备(Duff’s Device)与循环展开优化技巧

达夫设备是一种循环展开优化技术,通过结合switch和while语句处理非固定循环次数,以减少循环控制开销。该技术由Tom Duff在C语言中提出,适用于性能关键场景,但现代编译器已能自动实现类似优化。在JavaScript中使用达夫设备意义有限,因其可读性差且现代JS引擎已具备自动优化能力。JS中更推荐使用内置方法、for...of循环或TypedArray等清晰高效的替代方案。达夫设备作为编程技巧展示仍有价值,但在实际项目中应优先考虑代码可读性和现代优化方法。

2025-12-26 21:19:43 599

原创 JavaScript 常见算法复杂度总结(大O表示法)

本文系统介绍了算法复杂度分析中的大O表示法。主要内容包括:1)时间复杂度等级对比,从O(1)到O(n!)的性能曲线和实例;2)空间复杂度分类;3)常见算法复杂度详解(排序、搜索等);4)实际应用建议,包括不同数据规模下的算法选择原则;5)JavaScript内置方法复杂度分析。文章强调大O表示法反映算法随规模增长的趋势,实际开发需结合具体场景测试。最后提供复杂度速查表,帮助开发者快速评估算法性能。

2025-12-26 20:29:45 915

原创 JavaScript 从纯解释型演变为 JIT混合型(附:解释型 VS 编译型语言)

JavaScript最初是纯解释型语言,执行速度较慢。现代浏览器引入JIT(即时编译)技术,将JavaScript编译为机器码,显著提升了性能。JIT混合了编译型和解释型的优点:解释器快速启动执行代码,监控器识别热点代码后编译优化,执行时直接运行机器码。这使得现代JavaScript引擎(如V8)的执行速度接近编译型语言的70-80%,同时保持了解释型语言的跨平台优势。这种演进使JavaScript在Web前端和Node.js后端都能高效运行。

2025-12-26 15:33:12 643

原创 JavaScript addEventListener() 第三个参数(capture、once、passive、signal)详解

JavaScript的addEventListener()方法第三个参数有两种形式:布尔值(控制捕获/冒泡阶段)和对象配置(支持更多选项)。对象配置包含capture、once(单次执行)、passive(优化滚动性能)和signal(事件管理)等属性。实际开发中建议为滚动/触摸事件设置passive:true提升性能,使用once:true处理一次性事件,并通过AbortSignal管理事件生命周期。需注意IE不支持对象参数形式,传统布尔值参数与对象配置的capture属性功能相同。

2025-12-26 14:49:12 823

原创 异步操作中止机制 AbortController() 详解

AbortController详解:异步操作中止机制 AbortController是现代JavaScript中管理异步操作的重要工具,提供统一的中止机制。它通过signal属性与fetch请求、事件监听器等Web API结合使用,能有效避免内存泄漏和竞态条件。主要应用场景包括:取消用户操作(搜索/上传)、组件生命周期管理、超时控制和事件清理。使用时需注意:每次创建新控制器、正确处理AbortError、及时清理资源,并考虑浏览器兼容性。最佳实践建议结合防抖/节流使用,为耗时操作提供中止选项。

2025-12-26 14:48:31 649

原创 JavaScript 三种类型检测方法对比(instanceof、typeoff、Object.prototype.toString.call())

JavaScript类型检测方法对比摘要:本文对比了JavaScript中三种主要类型检测方法。typeof用于检测基本数据类型,返回字符串结果,但对null返回"object"且无法区分对象具体类型。instanceof检查对象是否为特定类实例,通过原型链检测,但不适用于基本类型且跨框架时可能失效。Object.prototype.toString.call()是最精确的方法,返回标准化类型字符串如"[object Array]",可识别所有内置类型但语法较复杂。

2025-12-26 14:03:06 847

原创 JavaScript 字符串和数组方法总结(默写版:同9则6 Str21 Arr27)

本文总结了JavaScript字符串和数组的常用方法,包括9个相同方法、6个字符串正则方法、21个其他字符串方法和27个数组方法。作者通过反复默写将这些方法系统化记忆,使字符串和数组操作不再混乱。文中按功能分类列举了各方法的基本用法,如字符串的增删改查、数组的遍历过滤等,并推荐了更详细的参考文档。强调编程基础需要扎实记忆和练习,这些方法的熟练掌握能显著提升开发效率。

2025-12-26 11:41:47 788

原创 主线程订阅推送,Service Worker 处理推送事件

本文介绍了Web推送通知的实现机制,重点比较了服务工作者线程和主线程两种订阅方式的差异。服务工作者线程通过PushManager订阅推送消息,并在push事件中处理通知,适合后台运行;主线程订阅则需等待服务工作者就绪,但能结合用户交互。最佳实践建议在主线程触发订阅,在服务工作者中处理推送事件,并使用waitUntil()保持线程活跃以确保通知显示。文章还提供了VAPID协议实现示例,并强调错误处理、超时控制和资源清理等注意事项,以平衡通知可靠性与性能消耗。

2025-12-25 15:55:14 480

原创 Service Worker 的 clients.openWindow() 方法详解

ServiceWorker中的clients.openWindow()方法主要用于在用户点击推送通知时打开新窗口,但需遵循严格限制:1. 只能在notificationclick事件中调用;2. URL必须同源;3. 需优先检查并聚焦已有窗口。禁止在notificationclose或push事件中使用,否则会被浏览器阻止。最佳实践包括错误处理、使用event.waitUntil()包裹操作,并尊重用户意图。不同浏览器对API的支持程度存在差异,iOS限制尤为严格。

2025-12-25 14:54:56 625

原创 使用 Notification API 在 Service Worker 中显示通知

在ServiceWorker中显示通知有两种方法:newNotification()和registration.showNotification()。前者只能在主线程中使用,需要用户授权且页面关闭时通知消失;后者专为ServiceWorker设计,支持推送通知和操作按钮,即使网站关闭也能显示。

2025-12-25 13:14:55 826

Beetl2.8中文文档

java模板引擎Beetl2.8中文文档。Beetl目前版本是2.8.3,相对于其他java模板引擎,具有功能齐全,语法直观,性能超高,以及编写的模板容易维护等特点。

2018-06-01

PMP学习笔记

我的PMP学习笔记,可以结合我的相关博客看。想通过考试大部分还是要靠自己梳理PMP的内在逻辑,别人的只是参考。

2018-06-07

质量管理学习资料分享.zip

质量管理学习资料分享,主要是了解QA工作时收集整理的一些资料。详情见相关博客。https://blog.csdn.net/Irene1991/article/details/106489800

2020-06-03

sublime 3 for mac

sublime text 3 for Mac,很好用的web前端开发编辑器。

2018-08-02

超好用的网页滚动截图插件

浏览器扩展工具,免安装,拖动至扩展中心,支持滚动截图,图片保存。安装成功后在浏览器右上角会有蓝色的S形图标,使用时点击图标即可。

2018-01-19

权限树tree-multiselect.js-demo

网上资源大多都是静态数据展现或单一层级的动态数据添加,本demo在官网demo的基础上添加了一个个人测试页,演示的是动态数据的无限极权限的层级展示,js交互部分使用了递归。

2018-01-19

2018-1-23_tree-multiselect-mydemo真实模拟项目中的添加和编辑功能

原有官方资源的升级版,彻底解决使用tree-multiselect开发权限配置时需要用到的添加和编辑场景,打通前端交互使用障碍。下载后打开demo中/tree-multiselect.js-demo/test/mytest_new.html测试。

2018-01-23

前端单页特效

单页,前端特效,音乐背景,环绕照片墙,自动旋转。照片和背景乐可以替换成自己喜欢的。

2018-08-13

js权威指南知识梳理.zip

js权威指南(犀牛书)知识梳理,xmind形式,包含目录和前8章知识点梳理。目录没有和翻译完全一样,部分有修改。章节知识点梳理也一样,有些原翻译比较生硬,转为了自己比较好理解的表述和自己写的一些示例代码。但绝大部分内容和示例代码是书籍里的原内容。

2020-04-29

平面设计原理-版式

看虎课网视频教程《日本平面设计原理-版式》,我自己记录的笔记。

2019-03-05

《GS14-2013 工商行政管理基础代码集》

《GS14-2013 工商行政管理基础代码集》是政府规定的工商行政相关的字段分类,比如行政区划代码,行业类别代码、币种代码、证照状态代码、广告媒介代码等。

2018-01-19

Navicat for MySQL Mac版

Navicat for MySQL ,Mac版,程序开发时,连接数据库使用。

2018-08-02

PMBOK中文第六版

PMBOK中文第六版,PDF格式,密码changeway,改变人生的路。

2018-03-28

空空如也

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

TA关注的人

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