- 博客(104)
- 收藏
- 关注
原创 Git SSH 密钥配置指南
SSH密钥配置指南(2025更新) 摘要:本文详细介绍了SSH密钥的配置流程与最佳实践。主要内容包括:1)SSH密钥的三大优势:免密登录、安全验证和多平台支持;2)六步配置流程:检查现有密钥、生成新密钥、启动代理、添加密钥、绑定公钥平台及验证连接;3)高级技巧:多账户管理和密钥持久化配置;4)常见问题解决方案和四项安全建议(定期更换密钥、分平台使用不同密钥等)。特别推荐使用ED25519算法生成密钥,并提供了Windows/macOS/Linux系统的具体操作命令。
2025-04-02 10:58:13
14062
原创 ECharts 伪 3D 柱状图完整注释 + 实现原理说明
该代码实现了一个2D模拟3D效果的柱状图,通过ECharts的pictorialBar功能叠加三层图层来伪造立体柱子效果。底层使用普通bar作为柱体主体,中层和上层分别用菱形pictorialBar模拟底部和顶部的立体切面。通过设置不同z层级、渐变填充和边框效果,视觉上呈现出3D立体感。但该方案仅支持单系列数据,多系列时因pictorialBar无法精确定位会导致错位问题。若需要多系列支持或真实3D效果,需引入echarts-gl插件使用bar3D系列。
2026-07-29 08:14:49
297
原创 人力资源管理系统大屏可视化项目:核心难点与优化实践
本文基于Vue+ECharts技术栈实现的人力资源管理大屏可视化系统,解决了复杂场景下的三大技术难题:1)针对3D图表渲染性能瓶颈,采用设备性能自动降级、防抖resize、分批初始化等技术优化,内存泄漏问题通过完善销毁机制解决;2)自研3D饼图交互体系,实现扇形上浮、位移等特效,并解决3D曲面与2D标签联动对齐问题;3)构建完整业务数据可视化链路,实现多维度分层展示和联动筛选。项目特色包括模块化设计、响应式布局、统一视觉规范等,为同类可视化系统提供了性能优化和交互设计的参考方案。
2026-07-28 15:57:44
320
原创 ant-design中的a-input标签中placeholder属性样式的修改
【代码】ant-design中的a-input标签中placeholder属性样式的修改。
2026-05-09 14:58:28
215
原创 uniapp APP 上传文件
本文介绍了在uniapp中实现APP端文件上传功能的方法。核心要点包括:1) 使用plus.nativeUI.actionSheet让用户选择上传图片或文件;2) 图片上传采用uni.chooseImage,文件上传使用plus.io.chooseFile;3) 通过uploadSingleFile公共方法统一处理上传逻辑,根据文件类型区分上传接口;4) 上传过程包含错误处理和加载状态管理。代码展示了完整的文件选择、上传流程,包括参数设置、结果处理和异常捕获,实现了APP端混合上传功能。
2026-01-29 14:13:01
271
原创 van-uploader 自定义预览删除图标(preview-delete插槽用法)
本文介绍了如何通过Vant的van-uploader组件自定义预览图的删除图标样式。主要内容包括: 基础用法:通过#preview-delete插槽替换默认删除图标,并配置组件属性 关键优化点:处理图标资源、调整样式定位、增强交互体验 进阶用法:实现删除加载状态和条件显示 注意事项:版本兼容性、图标尺寸适配和多端兼容问题 文章提供了完整代码示例,涵盖图标引入、样式调整、交互增强等细节,帮助开发者实现更贴合项目UI风格的图片上传组件。
2026-01-09 11:42:15
373
原创 独立命令行与VS Code内置终端执行pnpm install的区别
Windows系统中,独立命令行(CMD/PowerShell)与VSCode内置终端执行pnpminstall存在显著差异,主要体现在环境变量加载机制、权限控制、工作目录和集成特性四个方面。独立终端直接继承系统变量,权限灵活但需手动切换目录;VSCode终端采用多层变量继承机制,默认定位项目根目录但权限受限。开发时建议优先使用VSCode终端提升效率,全局操作时选择独立终端。团队协作应将终端配置纳入版本控制以确保环境一致性
2026-01-07 00:15:00
995
原创 Git命令
本文系统整理了Git常用命令,按核心使用场景分类,涵盖基础配置、仓库操作、分支管理、远程协作、撤销回退等8大场景。重点包括:1)基础配置命令(用户信息、全局设置);2)仓库操作(init/clone/status/add/commit/log);3)分支管理(创建/切换/合并/删除);4)远程协作(remote/push/pull/fetch);5)撤销回退(checkout/reset/revert);6)临时保存(stash);7)标签管理;8)其他实用命令(diff/blame/clean)。
2026-01-06 15:54:14
1885
原创 Vue3 项目本地图片正常显示,打包后无法显示
摘要: Vue3项目开发中,本地图片显示正常但打包后出现404错误,主要源于开发与生产环境的资源解析差异。常见原因包括:路径引用错误(绝对/相对路径不当)、动态资源未被识别、构建工具配置问题(Vite的base或assetsDir设置错误)、环境变量未定义或语法不兼容(如使用require)。解决方案需规范资源引用(优先import导入)、调整构建配置(如base: './')、替换不兼容语法,并验证打包后的路径匹配。注意事项包括保持代码连贯性、避免特殊字符命名及区分环境配置,确保生产环境资源正确加载。
2026-01-06 15:34:16
796
原创 scroll-view分页加载
本文介绍了使用scroll-view实现分页加载的核心原理和完整实现方案。关键点包括:1)通过scrolltolower事件监听滚动到底部;2)设置scroll-view固定高度;3)使用isLoading和hasMore状态管理分页请求。文章提供了可直接复用的代码示例,包含页面结构、样式和逻辑实现,并重点强调了常见问题的排查方法,如滚动不触发、重复请求等。实现时需特别注意scroll-view必须设置固定高度,以及合理控制分页状态避免重复请求。
2025-12-27 18:53:12
611
原创 uniapp自定义头部导航
本文介绍了在uni-app中实现自定义导航栏的完整方案。核心是通过配置navigationStyle:"custom"禁用原生导航栏,释放顶部布局空间。页面结构包含三个view:状态栏填充容器(动态适配不同机型状态栏高度)、导航主体(承载业务内容)和占位容器(解决布局错乱问题)。关键步骤包括:1) 在onLoad周期同步获取系统状态栏高度;2) 使用固定定位和响应式样式实现导航栏常驻;3) 采用rpx单位保证屏幕适配性。该方案通过动态适配和布局兜底机制,能兼容各种机型
2025-12-27 17:35:35
1305
原创 新人Git实操笔记:从dev分支创建新分支并推送到远程
梳理下来,从dev分支创建新分支并推送到远程的核心步骤其实很简单,记住这三步就行:准备工作:切换到dev分支并拉取最新代码(git checkout dev && git pull origin dev);创建分支:用git checkout -b 新分支名创建并切换到新分支;推送分支:用git push -u origin 新分支名推送到远程并建立关联。执行完这三步,新分支就会出现在远程仓库中,后续开发时直接在新分支上写代码,提交、推送都不用再额外指定远程和分支名,特别方便。
2025-12-23 17:04:48
1086
原创 window.postMessage
window.postMessage 是前端跨源通信的核心方案,核心优势在于支持任意跨源窗口/框架的双向通信,且兼容性良好。使用时需重点关注安全问题:严格限制 targetOrigin、接收消息时验证 origin 和消息格式,避免恶意攻击。常见应用场景包括跨标签页弹窗通信、iframe 父子页面通信,复杂场景可通过多层转发实现通信。对于 IE8/9 等低版本浏览器,需将消息转为字符串格式传递。
2025-12-22 17:49:04
1126
原创 WebView
原生应用可通过 WebView 的 API 对其行为进行精细化控制,常见配置包括:权限控制:允许/禁止 JavaScript 执行、允许/禁止跨域请求、控制网页存储(LocalStorage、SessionStorage、IndexedDB)的使用。导航控制:监听网页跳转(如拦截 URL 实现自定义路由)、前进/后退/刷新网页、清除缓存(页面缓存、Cookie、WebStorage 等)。界面控制:隐藏/显示滚动条、设置网页缩放比例、支持手势缩放、自定义进度条显示加载状态。
2025-12-22 17:43:29
2025
原创 UniApp APP 端跳转三方页面后返回 APP 的实现原理与实操解析
整套方案的核心是以web-view为容器、以为通信桥、以桥接脚本为跨端适配层APP 端向三方 H5 传递初始化参数;三方 H5 完成业务后向 APP 发送回调数据;APP 端接收数据后销毁web-view,返回内部页面。这种设计既遵循了 UniApp 的官方通信规范,又解决了跨端兼容、数据安全、用户体验等核心问题,是 APP 端跳转三方页面并返回的标准化实现方案。!if(!v=g?e({uvue:!0}):o()?e({nvue:!e({plus:!0}):e({h5:!M++);
2025-12-17 17:22:28
1307
原创 uniapp开发APP 内嵌外部 HTTPS 链接的实现方案
UniApp开发中内嵌HTTPS外部链接时,常因特殊字符解析导致400101等错误。本文提出"编码传递-解码加载"方案:跳转前用encodeURIComponent对完整链接编码,WebView页面仅需解码还原原始链接。关键点包括移除冗余参数拼接、配置域名白名单、增加异常兜底处理,并实现APP与H5的双向通信。该方案有效解决了链接截断和参数丢失问题,适用于实名认证、第三方签约等需要稳定加载外部链接的场景。
2025-12-17 11:16:01
767
原创 Git 回退神技:用ID一键“穿越”到旧版本
Git版本回退实用指南:通过提交ID精准回退代码版本。提交ID是每个版本的唯一标识,只需记住前7位即可定位。
2025-12-16 18:11:11
737
原创 Git 强制推送:别手滑把同事代码“一键清空”!
摘要:强制推送(git push -f)是Git中的高风险操作,会直接覆盖远程代码,相当于"手机覆盖原文件"的升级版。它主要用于修改历史提交、清理敏感信息或更新个人分支等场景。安全做法是使用带检查的--force-with-lease,避免误删同事代码。三大禁忌:1)禁止强制推送主分支;2)协作分支需提前沟通;3)推送前必须拉取最新代码。误操作后可通过git reflog找回历史提交。强制推送如同"剁骨刀",是特殊救急工具而非常规手段,使用时务必谨慎。
2025-12-16 18:05:24
1108
原创 git commit 的提交如何撤销
Git撤销commit操作指南:根据提交是否推送到远程仓库,提供不同解决方案。本地未推送的提交可通过--amend修改信息,--soft或--hard参数灵活撤销提交;已推送的提交建议使用revert安全撤销。误删可用reflog找回30天内记录。核心原则:未推送可自由修改,已推送必须用revert保证团队协作安全。附操作速查表,覆盖常见场景,兼顾灵活性与安全性。
2025-12-16 16:57:52
1283
原创 UniApp实现刷新当前页面
本文总结了UniApp中刷新当前页面的多种实现方案及适用场景。主要介绍了五种方法:1)使用uni.reLaunch全平台通用的基础方案;2)保留页面栈的uni.redirectTo方案;3)针对TabBar页面的switchTab+页面通信方案;4)性能最优的直接调用页面实例方法方案;5)H5专属的window.location.reload方案。文章对比了各方案的兼容性、页面栈影响和适用场景,并给出了选型建议:优先选择直接调用方法实现无跳转刷新,特殊场景考虑跳转方案,H5端可简化处理
2025-12-11 16:13:06
2198
原创 PHP新手入门超详细教程(小白一看就懂)
摘要:本文系统介绍PHP开发知识体系,涵盖基础语法、Web开发、数据库交互、框架应用、安全优化及实战项目。从环境搭建和语法基础开始,逐步深入HTTP协议、模板引擎、MySQL/ORM使用,解析Laravel等主流框架特性。重点讲解安全防护(XSS/CSRF防御)和性能优化技巧,并提供博客系统、电商平台等实战案例。最后推荐官方文档和Swoole异步编程等进阶方向,形成完整的PHP开发学习路径
2025-12-10 14:26:52
484
原创 JavaScript 函数完全解析(文章版)
本文全面解析JavaScript函数的核心概念与应用。从基础定义入手,介绍了四种函数定义方式(声明式、表达式、箭头函数、构造函数)及其适用场景。深入剖析了函数提升、参数特性(默认参数、剩余参数)、作用域与闭包、this指向等核心特性。进阶部分涵盖高阶函数、递归和异步函数等实用技巧,并给出函数设计原则和常见避坑指南。文章强调函数作为JS"第一等公民"的价值,包括代码复用、逻辑封装和模块化开发,为开发者提供了从基础到实战的系统学习路径。掌握这些内容将显著提升JS代码的质量和可维护性。
2025-12-08 11:58:03
1003
原创 JS 中 try-catch 异常处理机制(结合 async/await 详解)
本文深入解析JavaScript中try-catch机制的四大维度:基础机制、同步异常处理、异步异常适配及常见误区。try-catch通过"捕获-处理"逻辑防止程序崩溃,finally块确保资源释放。
2025-12-08 11:54:20
1257
原创 详解JS async/await与同步异步问题
本文深入浅出地讲解了JavaScript中async/await的工作原理和使用方法。通过"买奶茶"的生活场景类比,解释了同步与异步的区别:同步会阻塞线程,而异步通过回调实现非阻塞。文章指出早期回调函数会导致"回调地狱",而async/await作为Promise的语法糖,能让异步代码像同步一样清晰易读。核心规则包括:async函数自动返回Promise,await用于暂停执行直到Promise完成。
2025-12-08 11:49:59
764
原创 前端页面跳转的核心区别与实战指南
本文对比了前端开发中两种页面跳转技术:location.href和window.open()。location.href通过修改当前窗口URL实现跳转,适用于登录重定向等场景;window.open()则创建新窗口加载内容,适合需要保留原页面的场景。二者在跳转载体、历史记录、控制能力等方面存在显著差异:location.href操作简单但功能有限,window.open()配置灵活但易被拦截。
2025-12-08 11:42:56
1705
原创 微信 H5 环境检测逻辑
摘要:微信H5开发需通过navigator.userAgent检测运行环境,正则匹配"micromessenger"字段判断是否为微信浏览器。检测结果用于控制微信专属接口调用,需注意兼容性、小程序区分及执行时机等边界情况,确保在微信环境下才执行分享、支付等微信特有功能,避免非微信环境下的代码错误。该方法简单有效,但需结合其他特征区分小程序环境,并做好异常处理。
2025-12-08 09:43:49
439
原创 彻底搞懂 JavaScript 深拷贝与浅拷贝:原理、实现与最佳实践
浅拷贝是指:创建一个新对象,拷贝原对象的「第一层属性」——若第一层属性是基本类型,拷贝的是值本身;若第一层属性是引用类型,拷贝的是引用地址(新旧对象共享该层引用类型数据)。简单来说:浅拷贝只 “拷贝一层”,深层引用类型仍共享。深拷贝是指:创建一个全新的对象,递归拷贝原对象的「所有层级属性」——无论多少层嵌套的引用类型,都会创建新的内存空间存储;新旧对象完全独立,修改新对象不会影响原对象。场景推荐方案基本类型拷贝直接赋值(无需深浅拷贝)单层对象 / 数组拷贝扩展运算符(...)/
2025-12-05 11:18:20
920
原创 深入理解浏览器重绘与回流:前端性能优化的核心
本文深入解析前端性能优化的核心问题——重绘与回流。首先介绍浏览器渲染流程,指出回流对应布局阶段,重绘对应绘制阶段,且回流必然触发重绘。然后详细分析两者的触发场景:回流由几何属性或DOM结构变化引起,重绘由视觉样式改变引起。文章重点提供多种优化策略:批量修改DOM与样式、避免频繁读取回流属性、使用transform和will-change优化动画性能、优化布局结构等。最后推荐使用Chrome DevTools检测性能问题,并澄清常见误区。通过理解这些原理和优化方法,开发者可以显著提升页面性能,特别是在高频操作
2025-12-05 11:15:51
916
原创 JavaScript 数据存储方法全解析:从基础到进阶
JavaScript 存储方案从基础的内存变量到复杂的 IndexedDB,覆盖了临时、持久、小型、大型等不同场景的需求。选择方案时需重点关注:数据生命周期、容量、读写性能、是否需服务端交互、安全性等维度。实际开发中,建议结合场景封装通用存储工具类,降低使用成本,同时遵循安全最佳实践,保障数据安全。
2025-12-05 11:13:01
605
原创 深度解析:for 循环与 forEach/map 的核心区别及应用场景
本文深入解析JavaScript中for循环、forEach和map三种数组遍历方式的本质差异。从语法结构看,for循环是原生语句,支持灵活控制流程;forEach和map是数组方法,封装遍历逻辑。核心区别在于:map返回新数组(纯函数特性),而for/forEach无返回值;for支持break/continue,另两者仅能跳过当前迭代;for兼容异步操作,forEach/map无法等待异步。性能上for循环最优,但日常开发差异可忽略。适用场景建议:复杂逻辑/异步用for循环,简单操作用forEach
2025-12-05 09:24:48
1205
原创 H5 跳转方式
摘要:H5开发中,window.open('_blank')和location.href是两种不同的页面跳转方式。前者在新标签页打开链接,保留原页面状态,适合外部链接;后者直接替换当前页面,适合内部跳转。关键区别在于:页面独立性、浏览器限制、移动端适配和用户体验。最佳实践包括:使用noopener安全属性、避免异步调用window.open、移动端优先使用location.href。选择时应根据场景需求,权衡页面保留与跳转稳定性。
2025-12-05 09:22:59
791
原创 ES6(ECMAScript 2015)基本语法全解析
ES6(ECMAScript2015)是JavaScript的重大更新,引入了多项革命性特性。主要包括:let/const声明解决变量提升问题;解构赋值简化对象/数组操作;模板字符串支持多行文本和变量插值;箭头函数提供简洁语法;函数参数支持默认值和剩余参数;对象扩展允许属性简写;类语法实现面向对象编程;模块化支持导入导出;Promise处理异步操作;迭代器/生成器提供遍历控制;新增Set/Map数据结构;数组/字符串扩展实用方法。这些特性显著提升了代码可读性、可维护性和开发效率,是现代前端开发的基础。
2025-12-04 10:12:50
493
空空如也
van-tabs scrollspy
2025-11-25
uview-plus up-tabs 滚动导航
2025-08-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅