- 博客(530)
- 资源 (16)
- 问答 (1)
- 收藏
- 关注
原创 2025年--常用JS工具函数整理(utils.js)
使用场景:从数组中删除所有重复的值,实现方式很多,我们采取最简单的方式。一行代码搞定。uniqueArr 方法将传入的数组转换为Set,然后再解构为数组返回。
2023-01-05 12:02:00
1038
原创 web前端开发VScode必备插件(磨刀不误砍柴工)
Bracket Pair Colorizer友好的给括号加上不同的颜色,便于区分不同的区块,使用者还可以定义括号类型和颜色,尤其是 Dart 语言开发,尤为重要。Terminal编辑器中内嵌一个似 cmd 终端程序,直接在编辑器中运行终端命令。Path Intellisense插件自动提示文件路径,支持各种文件无脑快速引入,非常方便。JavaScript(ES6) code snipp...
2020-01-03 09:06:32
2097
原创 UniApp + H5+ 打造一个更优雅的 App 自动更新模块
本文介绍了一个功能完善的AppUpgrade类,实现了App版本更新全流程管理。该模块采用分层设计(版本层/交互层/下载层/安装层),提供版本检查、更新弹窗、下载管理、安装APK等核心功能。特色包括:支持强制/普通更新、多进度监听器订阅、下载取消、自动检查模式、响应式进度绑定以及完整的错误处理机制。通过TypeScript强类型定义和清晰的架构设计,使代码更易维护和扩展。
2025-11-24 17:03:09
155
原创 vue3 -- el-upload(element-plus)封装APK 文件上传组件
APKUploader组件是一个基于Vue 3和Element Plus的APK文件上传解决方案。该组件支持APK文件校验(仅允许.apk格式,默认100MB大小限制)、实时上传进度显示、已上传文件回显与删除功能。 关键特性: v-model双向绑定支持 响应式布局,最大宽度300px 自定义上传逻辑,支持进度回调 集成Element Plus组件,提供一致UI体验 使用方式: 通过v-model绑定APK文件URL 依赖后端uploadFileApi(需支持进度回调) 提供表单集成示例和自定义样式方案 注
2025-11-18 14:43:53
114
原创 uni-app打包app -- 在用户首次启动 App 时,强制弹出一个“用户协议与隐私政策”的确认对话框。
文章摘要:文章介绍了在App首次启动时强制弹出用户协议与隐私政策确认对话框的实现方法。通过在manifest.json中配置privacy字段,可自定义弹窗标题、内容、按钮文字等。用户必须点击"同意"才能继续使用App,否则点击"退出"将关闭应用。弹窗中还包含可跳转查看完整协议和政策的链接。该功能采用系统原生弹窗模板实现,确保用户首次使用时必须明确接受协议条款。
2025-11-07 15:49:45
454
原创 uniapp -- 解决微信小程序showToast不显示
微信小程序中 showToast 失效的常见原因及解决方案: showLoading 未关闭:需先调用 hideLoading 再显示 toast 页面跳转中断:用 setTimeout 延迟跳转,确保 toast 完整显示 生命周期过早调用:在 onLoad/onShow 中加延迟或使用 nextTick API 冲突:避免与 showModal 等弹窗同时调用 参数问题:确保 title 为非空字符串 推荐使用封装方法 safeShowToast,自动处理 loading 关闭和参数校验,并通过真机测试
2025-11-06 13:54:45
645
原创 ucharts -- Y轴刻度标签数字重复问题
【摘要】图表Y轴刻度标签重复问题通常由数值过小、网格数过多和整数显示导致。可通过三种方法解决:1)保留两位小数(设置tofix:2);2)根据series最大值调整网格数(splitNumber);3)手动设置Y轴最大值。示例代码演示了在uni-app中使用qiun-data-charts组件时,通过opts配置yAxis参数(如tofix:1)解决该问题,并包含数据获取与图表渲染逻辑。详见ucharts官方常见问题文档。(150字)
2025-08-21 09:27:07
228
原创 uniapp -- 小程序处理与设备通讯 GBK/GB2312 编码问题。
摘要:本文介绍了在小程序/UniApp中处理GBK编码的解决方案,提供基于iconv-lite和Buffer的实用工具类。核心功能包括GBK与UTF-8互转、批量解码、智能编码检测等,适用于蓝牙通信、旧系统对接等场景。通过示例代码展示了十六进制字符串转中文、中文编码为字节数组等常见操作,解决了小程序环境下的中文乱码问题。该方案具有兼容性强、使用简便的特点,特别适合需要处理GB2312/GBK编码数据的开发者使用。
2025-08-12 16:23:27
477
原创 封装一个功能完整的 WebSocket 客户端类 WebSocketClient
【代码】封装一个功能完整的 WebSocket 客户端类 WebSocketClient。
2025-07-25 10:31:50
149
原创 UniApp -- 小程序自定义导航栏组件
文件路径:components/CustomNavBar.vuetitle : {type : String , default : '默认标题' } }) const statusBarHeight = ref(0) onMounted(() => {importtitle : {type : String , default : '默认标题' } }) const statusBarHeight = ref(0) onMounted(() => {
2025-07-18 14:46:39
447
原创 uniapp -- uCharts 仪表盘刻度显示 0.9999999 这样的值问题处理。
在仪表盘中,数值23.8显示为23.799999999999997,这通常是由于浮点数精度问题导致的。为了解决这个问题,可以通过配置formatter方法来格式化显示数值。具体步骤包括:在config-ucharts.js或config-echarts.js中定义formatter方法,例如使用toFixed(2)将数值保留两位小数。然后在页面中应用这些配置,以确保数值显示正确且符合预期格式。这种方法可以有效避免浮点数精度问题,提升用户体验。
2025-05-17 11:28:32
388
原创 uni-app - 小程序使用高德地图完整版
页面自动通过定位获取用户位置并展示周边POI数据,同时支持关键词输入实时联想推荐关联地点信息,实现精准智能的地点发现与检索功能。
2025-04-30 16:17:24
1030
原创 uni-app - 微信小程序中,使用 navigateTo 传递非常大的数字传参精度丢失的问题
另外,微信小程序通过 navigateTo 传参时,所有参数最终都会作为字符串拼接到 URL 上,并在目标页面的 onLoad(options) 中以字符串形式接收。若需要恢复为大整数类型,可使用 BigInt(options.value)(注意微信小程序不支持原生 BigInt,可借助大数库)或直接以字符串形式使用即可。若必须传递大整数,官方并无明确规定,但通常建议先转为字符串处理,再在接收端解析或交由后台处理,避免精度损失和数据截断。:数据大小不受 URL 长度限制,可以传递任意长度和格式的数据;
2025-04-29 17:25:57
826
原创 uni-app 中使用 mqtt.js 的完整版
这样可确保仅在页面活动时保持连接,离开页面时释放资源。使用条件编译区分平台连接、在合适的生命周期钩子连接断开,并合理管理重连与订阅,可保证应用稳定可靠地收发 MQTT 消息。在页面的生命周期钩子中调用上述接口:在 onLoad(或 onShow)时调用 mqttConnect 并进行订阅,在 onUnload 时调用 mqttDisconnect。在 mqttConnect 或 on(‘message’) 回调中调用对应 action 更新状态,这样其它页面通过 store 就能访问连接状态或接收的消息。
2025-04-27 11:42:06
1396
原创 uniapp -- 列表垂直方向拖拽drag组件
需要在小程序中实现拖拽排序功能,所以就用到了m-drag拖拽组件,在开发的过程中,发现该组件在特殊的场景下会有些问题,并对其进行了拓展。
2025-04-01 16:43:51
397
原创 vue3 -- el-upload(element-plus)封装多图上传组件
【代码】vue3 -- el-upload(element-plus)封装多图上传组件。
2025-03-04 09:37:30
424
原创 vue3 -- 集成 amap(高德地图)
本文介绍了如何在 Vue 3 项目中集成高德地图(AMap),并使用 PoiPicker 实现地点搜索功能。此外,还在组件卸载时清理地图实例,防止内存泄漏。优化后的代码结构清晰,拆分了 initMap 和。AMapLoader 异步加载高德地图 API,并初始化 Map 实例。POI(兴趣点)选择后,在地图上添加标记(Marker),并通过 InfoWindow。PoiPicker,绑定搜索输入框,实现地点选择功能。loadAMapUIPoiPicker 逻辑,提高了可读性和可维护性。
2025-02-10 11:19:27
862
原创 vue3 -- 基于el-statistic实现动态数字滚动效果并封装卡片组件
vue3 -- 基于el-statistic实现动态数字滚动效果并封装卡片组件。
2025-02-07 10:02:38
638
原创 uniapp -- Vue3 MQTT集成(H5、小程序)踩坑记录
在使用 uniapp 进行项目开发时,我需要实现一个关键功能,即利用 MQTT.js 进行订阅操作。然而,在集成 MQTT 的过程中,遇到了兼容性问题。期间与作者进行了沟通。解决方案是:有些库需要额外处理。
2025-01-16 15:18:38
1275
原创 vue3 -- 项目中封装 MQTT 功能
MQTT(Message Queuing Telemetry Transport) 是一种轻量级的消息发布/订阅协议,专为低带宽、不稳定或高延迟的网络环境设计,特别适合物联网(IoT)应用。它基于客户端-服务器模型,使用 发布者、订阅者 和 主题 的机制。物联网通信:在设备之间传输数据,比如智能家居、传感器网络。实时消息推送:在聊天应用、通知系统中实现实时消息更新。设备监控和远程控制:监控设备状态并发送指令(如开关控制)。数据采集:将多个设备数据上传至服务器进行处理和分析。
2025-01-10 14:11:17
665
原创 缘起缘灭,随遇而安
然而,当旅途到了尽头,或者缘分已尽时,便该分手。生活中充满了无常与变化,我们无法预知下一秒会发生什么事情,也无法确定谁会陪我们走到最后。人生如同一条曲折蜿蜒的道路,我们在路上走着,不断前行。在这条道路上,我们会与无数人相遇、结伴而行,走过一程又一程。缘深或缘浅,缘聚或缘散,都是生命中无法掌控的变数。因为缘分这东西,强求不得,不属于自己的终究会离我们远去。人与人之间的关系就像一场旅行,有些人只是短暂地出现在我们的生命中,成为过客;在这漫长而又短暂的人生旅途中,愿我们都能在遇见时珍惜、离别时感恩、重逢时欢喜。
2024-12-17 15:15:13
376
原创 uniapp -- 实现页面滚动触底加载数据
效果首选,是在pages.json配置开启下拉刷新{ "path": "pages/my/document/officialDocument", "style": { "navigationStyle": "custom", "enablePullDownRefresh": false, //配置后,可以下拉刷新,上拉加载` "onReachBottomDistance": 100 }},代码<template&g
2024-12-09 15:30:29
653
原创 uniapp -- 发布微信小程序主包大小超过2M限制解决思路
本文记录一下解决该问题的一个方向,通过分包优化、代码压缩、资源管理等多维度手段,跨越那2M的界限。创建分包目录结构:在项目的根目录下,为每个子包创建一个单独的文件夹,并在项目配置文件app.json中声明这些分包。配置页面路径:确保在app.json中的pages数组里正确引用了分包下的页面路径,使用//格式。优化资源加载:利用分包机制,将图片、音频等静态资源随所属功能一同放入对应子包,减少主包体积。删除冗余代码:定期审查代码库,移除未使用的变量、函数和组件,避免不必要的代码膨胀。
2024-11-21 16:53:23
1840
原创 vue2 -- el-form组件动态增减表单项及表单项验证
在数据录入场景(如订单信息录入)中,可根据实际情况(如商品种类增加)动态添加表单项(如商品相关信息)。包含必填项验证和数据格式验证(如邮箱、电话格式),防止错误数据提交。// 此处执行错误的逻辑。// 执行父组件回调。
2024-11-06 17:29:08
580
原创 NGINX 部署项目时,遇到刷新页面导致 404
通过以上配置,你的 NGINX 将正确处理所有请求,避免刷新页面导致的 404 错误。此时,所有的 URL 请求都会被重定向到。,并由前端路由器(如 React Router 或 Vue Router)处理具体的路由。首先,确保你的项目已经构建完毕,并且所有静态文件(如。文件等)都位于一个目录下,例如。
2024-06-05 10:52:16
2396
原创 Windows系统中配置 Redis 监听特定的 IP 地址
监听所有接口存在安全风险,确保在生产环境中有适当的防火墙和安全措施。文件,这是 Redis 的配置文件。在 Redis 安装目录中找到。保存并关闭配置文件。
2024-06-05 09:11:25
901
原创 git -- 清除本地分支以及删除远程分支
参数用于删除已经被合并到当前分支的分支。参数用于清理本地已删除的远程分支引用。这个命令会从远程仓库中删除指定的分支。参数用于强制删除未被合并的分支。这样,就成功地清除了本地和远程的。假设你有一个分支名为。
2024-06-05 08:51:38
1979
原创 Linux系统虚拟机开放某个端口流程
核实Nginx配置文件中指定的代理端口是否正确,并且该端口已经在虚拟机上正确监听,没有被防火墙或系统安全策略限制。在Linux虚拟机上运行Nginx时,前端调用Nginx代理的接口请求显示‘请求超时’。确认本机与虚拟机之间的网络连接是否稳定,以及是否存在任何可能的网络延迟或阻塞。
2024-05-17 09:13:20
521
原创 vue3 -- 项目使用自定义字体font-family
引入字体文件: 首先,确保你的字体文件(通常是.woff、.woff2、.ttf等格式)位于项目中的某个目录下,比如src/assets/fonts/。在全局样式中定义字体: 在你的全局样式文件中(通常是App.vue或者一个单独的样式文件),使用@font-face规则引入字体文件,并定义字体名称。在Vue 3项目中使用自定义字体(font-family)的方法与在普通的HTML/CSS项目中类似。
2024-04-18 15:18:40
2616
原创 在uniapp开发的H5页面中,当我们使用浏览器的刷新功能时,会导致页面栈被清空,从而出现无法返回的跳转问题。
导航栏组件项目引入了uview-ui,直接进入u-navbar源码位置去修改。
2024-01-27 11:33:50
802
原创 vue2 -- 截图工具html2canvas
其中,this.$refs.capture 是一个引用,它可以指向组件内的某个 HTML 元素,以便让 html2canvas 截取该元素。:这样就可以在 Vue 中使用 html2canvas 实现截图功能了。在回调函数中,可以根据需要对生成的 Canvas 元素进行进一步处理,比如显示在页面上、下载为图像文件或上传到服务器等操作。1:安装 html2canvas 库。可以将网页中的指定元素或整个页面截取为图片,以便保存或分享。:3:编写截图逻辑。在 Vue 中使用 html2canvas 实现。
2024-01-18 14:14:36
988
前端关于 CSS,你该做好这 20 件事
2022-04-21
SuperMap iClient3D for WebGL 吊机模型文件
2023-11-08
AMandroidstudio.zip
2020-11-23
Svn使用操作步骤.zip
2020-03-29
HTML页面JS引入的位置不同,会延迟浏览器对DOM的渲染吗?
2021-06-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1