自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 鸿蒙开发编译运行问题解决方案

符号找不到问题确保所有源文件都已添加到编译配置中检查头文件引用和extern "C"声明清理编译缓存并重新编译依赖冲突问题使用ohpm管理依赖明确声明所有依赖,包括间接依赖使用overrides字段统一依赖版本。

2025-08-30 19:45:46 525

原创 为什么现代 Node 后端都选 NestJS + TypeScript?这组合真香了

上个月,我表弟他们公司的 Express 项目越来越乱,改个字段全爆红,三个月没敢上线。于是连夜试了 NestJS + TypeScript。两周后,老板笑了:“早用早下班,你们怎么不早点干?

2025-08-30 19:44:42 91

原创 Python 项目 Docker 仓库发布指南

本文档详细介绍如何将 AI Backend Python 项目构建为 Docker 镜像并发布到各种 Docker 仓库,包括 Docker Hub、阿里云容器镜像服务、腾讯云容器镜像服务等。

2025-08-30 19:43:45 529

原创 模式组合应用-组合模式

组合模式是一种结构型设计模式,它旨在将对象组合成树形结构以表示 "部分-整体" 的层次结构,使得客户端使用单个对象或组合对象时具有一致性。在软件开发中,经常会遇到处理树形结构数据的情况,最常见的莫过于组织架构中的部门和员工,经常在系统管理模块中存在。在传统设计中,处理树形结构时,客户端需要区分叶子节点和组合节点,导致代码中充满条件判断,组合模式通过引入一个共同的接口或抽象类来解决这个问题。

2025-08-30 19:43:06 560

原创 Python基础语法知识

tup0=() #定义了一个空元组 #tup1=(1) #<class 'int'> tup1=(1,) #<class 'tuple'> print(type(tup1)) #不加逗号,类型为整型;

2025-08-30 19:42:30 333

原创 Linux 系统中动态库的作用

在 Linux 系统中,动态库(也称为共享库,通常以 .so 为扩展名,即 Shared Object)是一种包含,其核心作用是。

2025-08-30 19:41:57 268

原创 探秘Object.prototype.toString(): 揭开 JavaScript 深层数据类型的神秘面纱

在日常开发中,我们经常会遇到一个看似简单却极其强大的工具——。它像一把钥匙,帮助我们在千变万化的 JavaScript 数据类型世界里快速辨别对象的“真实身份”。本文将带你从基础到进阶,系统地理解这个方法的用法、边界与最佳实践,帮助你写出更稳健、可维护的代码。

2025-08-28 16:10:10 599

原创 3 个必须掌握的 TypeScript 高阶概念

以上概念可能不会每天用到,但在合适的场景中运用它们,能帮你省去大量纠结的时间,避免编写过度复杂或冗余的类型。掌握这些高阶概念将帮助你更精确、轻松地建模数据,编写更清晰安全的代码,并构建出灵活的 API。

2025-08-28 16:09:40 383

原创 踩坑指南:VueUse useThrottleFn 为什么“不听话“?

如果你正在使用,记住这几个要点:🤡问题根源trailing参数默认为true,会在节流周期结束后"偷偷"执行最后一次调用🔧快速修复:显式设置,告诉函数"适可而止"📈版本升级:如果可能,升级到 v8.9.0+ 享受更合理的默认行为⚠️注意兼容:升级版本时要检查现有代码,避免行为反转。

2025-08-28 16:09:02 319

原创 用的好好的vue.config.js代理,突然报308, 怎么回事?[特殊字符]

我又找了一个vite项目对比了一下,发现vite.config.ts配置的server.proxy, 不会引发308重定向问题,打印了一下请求头,没有输出, 那就奇怪了。难道vite的代理请求使用的不是http-proxy, 查看了vite的官方源码,发现使用的代理工具果然不同, 是,它是对经典http-proxy的 TypeScript 重写版本。目标是解决原版http-proxy中的 socket 泄漏、安全漏洞和老旧 API。已用于生产环境。看了一下http-proxy最新的版本是v1.8.1。

2025-08-28 16:08:31 1027

原创 Echarts高级柱状图开发:渐变与3D效果实现

本文详细介绍了renderItem函数如何创建自定义的图表;首先解释renderItem函数的基本用法和参数结构,包括params对象提供的上下文信息、api中的关键函数(value函数、coord函数、visual函数等);主要的难点就在于理解在函数中如何数据值转换为视觉属性,以及如何组合基本图形元素来构建复杂的自定义图表。本文重点介绍了三个高级案例的实现:折线装饰旋转元素通过组合圆形和圆弧创建动态旋转效果;分隔渐变柱状图将单个柱子分解为多个渐变色块;

2025-08-28 16:07:53 834

原创 Zustand状态库(简洁、强大、易用的React状态管理工具)

store 中的状态将不会自动保存到 localStorage 中,页面刷新后状态会重置为初始值。接下来我们手动处理 token 的持久化(例如,只持久化 token 而不持久化其他状态)使用起来也非常的简单,可以拆分API的方式,也可以API直接组合的方式进行使用。这时候我们还没写localStorage存储,那么会导致什么问题呢。你可以在登录和退出函数中手动处理 localStorage 的读写。再次测试,即便我们刷新,存储在本地的数据也不会丢失。接下来在我们的项目之中进行使用。

2025-08-28 16:07:05 195

原创 在Vue3+ElementPlus前端中,使用watch监控对象变化,实现字典列表的级联更新处理

在Vue3+ElementPlus前端中,有时候一些字典的关联显示,需要使用级联,因此一般使用watch监控对象变化,实现字典列表的级联更新。本篇随笔介绍基于实际案例来实现多级关联的处理操作,以供参考。

2025-08-28 16:06:22 368

原创 前端使用CountUp.js制作数字动画效果的教程

CountUp.js 是一个零依赖的 JavaScript 库,用于创建从一个数字平滑过渡到另一个数字的动画效果。它体积小巧(压缩后仅约 3KB),使用简单,且高度可定制,能够满足各种数字动画需求。

2025-08-28 16:05:51 594

原创 ts的类型兼容性

ts兼容的魅力所在:TypeScript 看“结构”不看“出身”。只要你的对象有我需要的属性,你就能当我的变量,哪怕你还会更多技能!在 TypeScript 中,只要一个类型的结构(即它的成员)兼容,就可以赋值,不管它叫什么名字或从哪里来。源类型必须包含目标类型的所有成员(可以更多,但不能少)。成员的类型也必须兼容。泛型的兼容性取决于类型参数是否被使用。函数兼容性比较复杂,涉及。

2025-08-28 16:05:17 327

原创 vue3实现html转成pdf并导出

方案一:html2canvas + jspdf代码。

2025-08-28 16:04:38 377

原创 鸿蒙Next组件扩展全面解析:从构建函数到样式复用的完整指南

鸿蒙操作系统(HarmonyOS)的ArkUI框架提供了一套强大的组件扩展机制,允许开发者通过装饰器(Decorator)来增强组件的功能和复用性。ArkTS作为HarmonyOS优选的主力应用开发语言,在TypeScript生态基础上做了进一步扩展,提供了声明式UI描述、状态管理和渲染控制等能力。组件扩展机制让我们能够将UI元素和业务逻辑封装成可复用的单元,从而提高代码的可维护性和开发效率。在ArkUI中,组件扩展主要通过各种装饰器来实现,每个装饰器都有其特定的用途和应用场景。构建函数装饰器。

2025-08-26 20:36:15 266

原创 Typescript 基础介绍

结果:协变 => 并集(covariant => union),逆变 => 交集(contravariant => intersection)interface只能声明object type。ts中的extends运算规则。协变 (Covariance)声明、等式左边(表示继承)等式右边(表示条件判断)Type 能做类型推导。子集(SubType)

2025-08-26 20:35:55 615

原创 注入攻击和 XSS 攻击,谁在偷你的数据?

是浏览器原生DOM API,用于设置或获取元素的文本内容。它会把任何字符串当作纯文本处理,而不会把<script>或HTML标签当作可执行内容。换句话说,即使用户输入了,使用渲染时也只会显示为普通文本,不会执行JS。Vue 自动转义: Vue的模板语法会自动帮你把绑定的数据进行HTML转义。它会把等特殊字符转换成HTML实体(如→),从而避免XSS。如果你使用v-html,则不会转义,需要手动消毒。

2025-08-26 20:18:09 354

原创 useMergedRefs: 组件封装必不可少的自定义Hook

你有没有遇到过这样的尴尬场景:想要给一个按钮同时添加悬停检测、焦点管理和滚动监听,结果发现React只允许一个元素绑定一个ref?function MyButton() { const hoverRef = useRef(null) const focusRef = useRef(null) const scrollRef = useRef(null) // 😰 这样做行不通!

2025-08-26 20:17:29 326

原创 深入解析 JavaScript 作用域链:变量查找的核心机制

变量对象(VO):全局执行上下文关联的存储对象活动对象(AO):函数执行时创建的局部作用域对象词法环境(Lexical Environment):ES6引入的包含环境记录和外部引用的结构词法决定性:作用域链在函数定义时基于代码结构确定链式查找:变量解析沿AO → 父级AO → Global.VO路径回溯闭包本质:通过持久化实现跨作用域状态保持现代实践优先使用let/const块级作用域用 ES Modules 替代 IIFE严格模式作为默认选择。

2025-08-26 20:16:42 341

原创 Vue2与Vue3响应式原理对比

对这个对象的基本操作。

2025-08-26 20:16:07 248

原创 pandas

Series: 一维数组,带有标签(索引)。DataFrame: 二维数据结构,类似于电子表格,由多行和多列组成。主要是一个数据分析工具,但它可以与。等可视化库集成以进行数据可视化。

2025-08-26 20:15:37 327

原创 Go 语言并发采集淘宝商品数据:利用 API 实现高性能抓取

在电商数据分析、价格监控等场景中,高效采集商品数据是一项常见需求。本文将介绍如何使用 Go 语言的并发特性,结合淘宝 API,实现高性能的商品数据采集系统。

2025-08-26 20:14:59 277

原创 鸿蒙 Next 布局大师课:从像素级控制到多端适配的实战指南

鸿蒙 Next 的布局系统为开发者提供了丰富的工具集,从基础的线性布局到复杂的响应式栅格,每种布局都有其独特优势和适用场景。掌握这些布局技巧不仅能提升 UI 开发效率,更能实现跨设备的一致体验。布局开发指南布局组件 API 参考华为开发者联盟布局开发是一个实践出真知的过程,建议结合设计稿多尝试不同布局方案,逐步建立布局思维。遇到复杂场景时,可先用草图规划组件关系,再选择合适的布局容器实现。

2025-08-26 20:14:08 229

原创 ArkUI基础篇-组件事件

外部编写回调函数可以增加代码的整洁行不能在外部操作组件的数据若想传递参数不能直接将回调方法作为事件的参数进行传递最后只有事件3是成功改变值的/* * 事件处理界面 * */ @Entry @Component struct ArkUIPage { @State message: string = 'Hello World';

2025-08-26 20:13:17 261

原创 鸿蒙 Next 布局大师课:从像素级控制到多端适配的实战指南

鸿蒙 Next 的布局系统为开发者提供了丰富的工具集,从基础的线性布局到复杂的响应式栅格,每种布局都有其独特优势和适用场景。掌握这些布局技巧不仅能提升 UI 开发效率,更能实现跨设备的一致体验。布局开发指南布局组件 API 参考华为开发者联盟布局开发是一个实践出真知的过程,建议结合设计稿多尝试不同布局方案,逐步建立布局思维。遇到复杂场景时,可先用草图规划组件关系,再选择合适的布局容器实现。

2025-08-26 20:12:36 371

原创 React 状态更新:如何避免为嵌套数据写一长串 ...?

当 React 组件的状态结构复杂时,使用useState直接更新嵌套属性会导致代码冗长且易错。use-immer提供了一种简化的方式,允许开发者使用直接赋值的语法,而内部保证状态的不可变性。对于需要在多个组件间共享的状态,可以使用 Zustand 或 Redux 等状态管理库。这些库可以将状态集中存放,并提供机制来更新和读取状态。Zustand 的 API 较为简洁,Redux 功能更全面,适用于大型应用。选择哪种方案取决于应用的具体需求和复杂度。

2025-08-26 20:12:06 209

原创 flutter滚动视图之Viewport、RenderViewport源码解析(六)

决定内容在视口中的对齐方式(0 表示顶部/左侧,1 表示底部/右侧)。:双向滚动的锚点,如果未指定,默认使用第一个子组件。:将所有 sliver 子组件加入视口。:滚动偏移量,控制视口显示的内容位置。:控制预渲染区域,优化滚动性能。

2025-08-26 20:11:20 296

原创 浏览器:我要用缓存!服务器:你缓存过期了!怎么把数据挽留住,这是个问题。

资源类型推荐策略配置要点说明带哈希的 JS/CSS强缓存构建工具生成,可长期缓存。图片/字体强缓存内容稳定,长期缓存。HTML 文件协商缓存ETag入口文件,必须能验证更新。API 数据协商缓存ETag保证数据新鲜,节省带宽。高度敏感数据禁用缓存绝对不缓存。关键要点no-cache≠ 不缓存:它是协商缓存的触发器。文件名哈希是强缓存的基石:它让长期缓存变得安全可靠。HTML 是缓存策略的枢纽:通常用no-cache确保其能及时更新。ETag优于:更精确,能检测秒级内的修改。监控与测试。

2025-08-26 20:09:04 627

原创 Java 面试题汇总,全网常见总结

Java面试题精华摘要 本文汇总了Java核心面试知识点,涵盖异常处理、多线程、集合框架等关键内容: 异常机制 Exception表示可处理异常,分为受检/非受检异常 Error代表严重系统错误(如OOM) 多线程核心 synchronized实现线程同步 volatile保证可见性但不保证原子性 线程池的4种创建方式及状态转换 集合框架 HashMap与HashTable的线程安全性差异 ArrayList与LinkedList的底层实现对比 迭代器Iterator的使用规范 其他重点 JVM类加载过程(

2025-08-26 20:06:18 1484

原创 一篇吃透移动端适配!从原理到实战,面试题也帮你整理好了 [特殊字符]

简单来说,移动端适配是指通过技术手段,让同一套网页代码在不同尺寸、不同分辨率的移动设备上,都能呈现出合理的布局、清晰的内容和易用的交互。为什么需要适配?尺寸不同:从 4.7 英寸的 iPhone SE 到 6.7 英寸的安卓大屏手机;分辨率不同:同样是 6 英寸手机,可能是 720P(1280×720)、1080P(1920×1080)甚至 2K 分辨率;像素密度不同:有的手机 1 英寸屏幕里塞了 300 个像素点(高清屏),有的只塞了 200 个(普通屏)。

2025-08-25 20:25:25 1006

原创 Vue 3.6 将正式进入「无虚拟 DOM」时代!

// 你的组件逻辑无需改动

2025-08-25 19:12:43 279

原创 Vue渲染器解析

渲染器是 Vue 与浏览器之间的「翻译官」。它拿到一份用 JavaScript 对象描述的 UI(虚拟 DOM),然后精准地创建、更新、销毁真实 DOM,同时把响应式数据和渲染函数绑定成一条自动刷新的流水线。

2025-08-25 16:47:41 287

原创 [特殊字符] 从零构建 AI 代码审查机器人:让 GitLab 自动审查代码质量

AICR��智能代码审查:使用 DeepSeek AI 自动分析代码质量和潜在问题📝行内评论:在 GitLab MR 的具体代码行下添加针对性评论🔄增量审查:避免重复评论,只审查新增的代码⚡性能优化:支持大批量代码变更的高效处理🔗Webhook 集成:自动响应 GitLab 的 push 和 merge_request 事件通过本文,我们成功构建了一个功能完整的 AI 代码审查机器人。模块化设计:清晰的代码结构,易于维护和扩展智能审查:基于 AI 的代码质量分析,提供有价值的建议。

2025-08-25 16:46:51 749

原创 从布局难民到 flex 大神:新人必学的 Flex 布局全攻略

方便之处:在分配空间前设置项目的初始大小,比 width/height 更智能的尺寸控制方式。与传统 width 不同,flex-basis 会根据容器空间动态调整:/* 默认值,按内容大小(动态文本元素)*/ flex-basis: 200px;/* 固定初始宽度(头像、固定尺寸组件)*/ flex-basis: 50%;/* 百分比宽度(响应式分栏)*/ }经典场景。

2025-08-25 16:46:16 1010

原创 面试分享:二本靠7轮面试成功拿下大厂P6

时隔两年再次更新了,本文主要给大家带来一些我面试的经历和经验,希望对正在求职大厂前端岗位的同学有所帮助。我先大致说下面试之前的个人情况:2021年毕业去了一家500人左右的小公司,react和vue项目经验都有,两年半后拿礼包去了一家中厂,后来在这家公司待了一年左右最近面试京东拿到了P6的offer,差不多四年的工作经验终于拿到了大厂的入场券。

2025-08-25 16:45:31 958

原创 webpack是什么?webpack中loader和plugin的区别

plugin是一个扩展器,它丰富了webpack本身,针对是loader结束后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点,执行广泛的任务。处理一个文件可以使用多个loader,loader的执行顺序和配置中的顺序是相反的,即最后一个loader最先执行,第一个loader最后执行。对于loader,它是一个转换器,将A文件进行编译形成B文件,这里操作的是文件,比如将A.scss转换为A.css,单纯的文件转换过程。

2025-08-25 16:44:51 399

原创 揭秘DOM键盘事件:从基础到高级技巧全解析!

键盘事件是用户在使用键盘与页面交互时触发的事件。keydown:按键被按下时触发(按住不放会重复触发)。keypress:字符键被按下时触发(功能键如方向键不会触发)。keyup:按键被松开时触发。键盘事件是前端交互中不可或缺的一部分,掌握其原理与技巧能显著提升用户体验。从基础的按键判断到复杂的组合键设计,再到性能优化与无障碍适配,每一个细节都值得深入探索。通过本文的讲解,相信你已经对键盘事件有了全面的理解。接下来,不妨动手实践,将这些技巧应用到你的项目中,创造更高效的用户交互体验!

2025-08-25 16:44:00 293

原创 前端居中布局:从 “卡壳“ 到 “精通“ 的全方位指南

居中布局看似简单,却能反映前端开发者对布局模型的理解深度。从最基础的text-align到现代的 Flex/Grid,每种方案都有其设计理念和适用边界。记住:没有 "最好" 的居中方案,只有 "最合适" 的方案。掌握各种方案的优缺点和适用场景,根据实际需求灵活选择,才能真正做到 "居中自由"。最后,建议你在实际项目中多尝试不同方案,对比它们在各种场景下的表现 —— 实践,才是掌握布局的最佳途径。🚀。

2025-08-25 16:04:21 818

空空如也

空空如也

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

TA关注的人

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