自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从零构建一个“小猫咪”配置合并 API:自动注入内容过滤规则的完整教程

本文介绍了一个基于Next.js的安全合规的配置合并服务实现方案。该服务能够自动整合第三方内容过滤规则到本地网络管理工具的配置文件中,实现"一键注入过滤规则"功能。文章详细解析了技术实现,包括安全域名白名单控制、多格式内容解码、规则智能格式识别和注入等核心功能,强调所有操作均在合法合规框架内完成。该方案适用于本地网络工具规则扩展和开源社区规则集成,具有安全、高效、可扩展的特点,完全符合中国互联网内容管理规范。

2026-01-21 11:41:59 976

原创 基于cloudflare workers和Workers KV搭建一个短网址(网址转换短链跳转)服务

本教程详细介绍了如何使用Cloudflare Workers和Workers KV搭建一个完整的短网址服务。该方案具有部署简单、成本低廉、性能优越的特点,适合个人和小型项目使用。通过微信检测、重复URL检测、友好的用户界面等功能,提供了良好的用户体验。这个短网址服务可以满足日常的链接缩短需求,同时具备良好的扩展性,可以根据需要进行功能增强和定制开发。

2025-12-08 16:56:28 1304

原创 又拍云注销账号退款:一场本不该如此“恶心”的用户告别

在又拍云平台上,我既找不到注销账号的入口,也找不到余额退款的选项。客服对此的解释是:“账号是实名制的,所以退款需要这些信息。”然而,当初充值的时候,又拍云并未要求提交如此繁琐的个人资料。一家企业的服务品质,不仅体现在用户使用过程中,更体现在用户离开时的体验。又拍云在推广期提供便利的充值入口,而在退款时却设置重重障碍,这种“前后不一”的做法,无疑会损耗用户的信任。最近决定将个人博客的加速服务从又拍云切换到其他平台,本以为注销账号、取回余额是一个简单的流程,却没想到,这竟成了一场令人倍感“恶心”的拉锯战。

2025-12-02 14:53:15 297

原创 预览img图片文件pdf文件如何鉴权配置请求头token

在现代 Web 开发中,我们经常需要加载受权限保护的资源,比如带有身份认证(如 Bearer Token)的图片或 PDF 文件。然而,标准 HTML 中的<img>标签、<iframe>或<object>等元素无法直接配置 HTTP 请求头。这意味着你不能像使用fetch那样,在标签层面传递X-API-Key等头部信息。但这并不意味着无解!

2025-11-19 12:05:19 998

原创 TypeScript 中的 args 详解,和 arguments 有什么不同?

在 TypeScript 中,args剩余参数...args):收集多个参数到数组arguments对象:函数内可访问的类数组对象元组类型的剩余参数:提供更精确的类型控制泛型剩余参数:保持类型安全的可变参数最佳实践优先使用剩余参数而非arguments对象为剩余参数提供明确的类型注解在需要精确类型控制时使用元组类型考虑性能影响,在热路径中避免不必要的数组创建args是 TypeScript 函数编程中的重要概念,合理使用可以大大增强代码的灵活性和类型安全性。希望这些信息能帮助您。

2025-10-30 17:01:33 495

原创 js中Map和对象{}的区别

键类型多样(对象、函数等作为键)需要频繁增删键值对需要保持插入顺序大数据量操作。

2025-10-30 17:00:06 484

原创 vue3中ts提示扩张参数必须具有元组类型或传递给rest参数

这个错误通常发生在 TypeScript 中,当你尝试使用扩展运算符(spread operator)...时,TypeScript 检测到类型不匹配。more。

2025-10-30 16:59:10 337

原创 vue3 pinia在App.vue中使用了useStore报错getActivePinia() was called but there wa no active pinia

是否已经创建完成,如果未创建完成则等待。中使用全局的参数,所以要在封装。时会立即执行,导致组件尚未加载。中使用动态组件,通过判断。创建完成再加载组件。

2025-10-30 16:52:53 240

原创 vue3原生实现图片对比

【代码】vue3原生实现图片对比。

2025-10-30 09:05:00 259

原创 Chrome 命令行参数生成器

一个可视化工具,用来快速生成 Chrome 启动参数,让你通过选择或填写配置就能得到一条可以复制执行的命令。more。

2025-10-30 08:41:25 456

原创 基于HTML5、阿里云播放SDK、腾讯云播放SDK开发的M3U8在线播放器

在当前的网络视频领域,M3U8 文件格式是一种广泛应用的流媒体播放格式,具有广泛的兼容性和稳定性。为了在网页上实现 M3U8 格式的在线播放,我们可以结合HTML5 技术和阿里云播放SDK与腾讯云播放 SDK,快速开发一个功能强大的 M3U8在线加速播放器。同时利用hls播放器的去广告功能,实现无广告的在线播放。moreHTML5 是一种广泛应用于网页开发的标准,其中包含了丰富的多媒体支持,包括音频和视频。通过使用 HTML5 的标签,我们可以在网页上实现简单而有效的视频播放功能。

2025-10-30 08:40:44 1901

原创 Husky 在前端项目中的使用指南

Husky 是一个 Git hooks 工具,可以让我们在 Git 操作的特定阶段(如提交前、推送前)自动执行脚本,常用于代码质量检查、测试运行等。more。

2025-10-30 08:39:27 582

原创 vue3 组件 has no default export

大多数情况下,“has no default export” 的提示通过用 Volar 替换 Vetur 即可解决。这个方案也是 Vue 作者尤雨溪所推荐的。希望这些方法能帮助你解决问题!如果尝试后仍有疑问,欢迎随时再问我。

2025-10-30 08:37:15 369

原创 js es6 class 类中的值是异步赋值, 子类中如何获取这个值?

子类可以获取父类的异步赋值,但必须在异步操作完成后立即访问可能得到null或初始值推荐使用Promise或来管理异步状态通过等待初始化完成的方法确保数据可用性事件监听模式适合需要实时响应的场景关键在于时序控制- 确保在访问异步值之前,相关的异步操作已经完成。

2025-10-30 08:35:14 389

原创 vue3 pinia在App.vue中使用了useStore 报错getActivePinia() was called but there wa no active pinia

中使用全局的参数,所以要在封装。时会立即执行,导致组件尚未加载。

2025-10-30 08:32:27 171

原创 手动实现uni-app可用的new URL

uni-app中没有URL,手动实现一个可用的URL

2023-09-05 14:04:07 1813

原创 uni-app集成mui-player

uni-app集成mui-player

2023-09-05 14:02:01 2094 1

原创 某某某小说app接口抓包分析

某某某小说app接口抓包分析

2023-07-31 19:54:56 1188

原创 一个不常见的开发问题,你遇到过吗?

如果公司有开发国际化的业务,某些国家书写的方向是从右往左的,不同于我国古代的写法,他们只是布局方向从右往左,但是文字还是从左往右写的。使用rtlcss,他的实现思路就是配置rtl属性使用,将页面上的left相关属性都转为right属性,核心思想就是某些属性的全局转换。在 HTML5 中, dir 属性可用于任何的 HTML 元素 (它会验证任何HTML元素。在 HTML 4.01 中, dir 元素不能用于: ,其实,这些头疼的问题是有成熟的解决方案的。dir 属性规定元素内容的文本方向。

2023-07-03 17:42:58 291

原创 一道前端this面试题

注解部分请查看原文const obj = {log () {obj.log()fn() // 0arr // 2。

2023-07-03 17:38:27 103

转载 【转载】精读《SolidJS》

原因在于,SolidJS 收集所有用到了 count() 的依赖,而 doubleCount() 用到了它,而渲染函数用到了 doubleCount(),仅此而已,所以自然挂上了依赖关系,这个实现过程简单而稳定,没有 Magic。而 SolidJS 本身渲染函数仅执行一次,所以不存在 React 重新执行函数体的场景,而 createSignal 本身又只是创建一个变量,createEffect 也只是创建一个监听,逻辑都在回调函数内部处理,而与视图的绑定通过依赖收集完成,所以也不受条件分支的影响。

2023-07-03 17:35:04 367

原创 【前端面试总结】vue、react、webpack、babel面试总结

nextTick 会在dom渲染之后被处罚,以获取最新的dom节点。// 简单的用v-show就行,稍微复杂的用keep-alive。监听引用类型,使用下面方法深度监听,但是拿不到oldVal。key,不能乱写,尽量不用index,不用random。mixin和组件可能会出现多对多的关系,复杂度较高。组件卸载时,解除事件绑定,销毁子组件,定时器等。组件渲染: 先子后父【子组件渲染完,才能挂载】需要根据数据,动态渲染的场景。// 每个组件只渲染一次,且不会销毁。复杂写法,常用,可以定义类型和默认值。

2023-07-03 17:29:54 719

原创 将毫秒数述转为时分秒格式

将毫秒数述转为时分秒格式

2022-08-29 15:48:51 331

原创 jsdelivr cdn大陆挂了不能访问替代方案

【查看原文】今天是2021.12.20,jsdelivr cdn大陆挂了不能访问了jsdelivr挂了,npm库替换如果你使用的是npm库,使用unpkg.com挂了!什么?unpkg太慢了?好吧,使用中国镜像unpkg.zhimg.com全局搜索cdn.jsdelivr.net/npm替换为unpkg.zhimg.comgithub库替换如果你使用的是github库,请看我这篇文章推荐几款免费且不限流量的全球CDN......

2021-12-20 17:03:37 10101 6

原创 项目中遇到的有趣的“BUG”,这样做比删库跑路更高明

项目中遇到的有趣的“BUG”,这样做比删库跑路更高明持续更新中,更多请 请移步这里问题1、条件判断当 a 不等于 1 或者 不等于 2 的时候, 执行一段操作// 这个条件 永真,有时候 一眼 还真看不出来if(a !== 1 || a !== 2) { // todo something}问题2:重写父方法问题// 组件特别多的时候,改一下 基类父组件 的方法,真的能查好久class Parent { todo1() { console.log('p 1')

2021-11-18 18:01:45 201

原创 vue3.x中vue4.x如何使用modules模块化

完整原文地址store/modules/a.jsexport default { namespaced: true, state: () => ({ }), getters: { }, actions: { async getData ({state, commit, dispatch, rootState}) { await ajax() ... } }, mutations

2021-11-15 17:59:20 1337

原创 vue的input输入框中截取字符串改变时不刷新问题

场景:input中value为金额类型的两位小数,当输入小数点后位数超过两个时,自动截取保留两位遇到的问题blur触发修改当首次输入时,没有问题,可以正常截取,当再次输入时,在当前值的后面继续输入,blur时,输入框中的值无改变原因分析:因为是在已有值后面追加输入,所以截取后的内容没有发生变化,所以输入框中值没有发生变化解决办法给input输入框添加一个key属性,每次修改值,即blur时 修改这个key值,达到重新渲染刷新的目的官方API知识点点击查看...

2021-11-15 17:50:45 1326

原创 uniapp的webview嵌套页面中的广告资源如何屏蔽

uniapp的webview嵌套页面中的广告,js文件、图片文件等如何屏蔽场景:webview嵌套了一个在线播放页面,但是播放页面中还有广告js,广告图片等解决方法:使用webviewObject的overrideResourceRequest实现// 获取当前页面 webviewcurrentWebview = this.$scope.$getAppWebview()// 需要屏蔽的资源路径列表const filterUrls = ['cnzz', 'umeng']con

2021-11-15 17:49:36 1419

原创 uni-app自定义tabbar导航栏

uniapp原生tabbar组件,性能非常好,但是自定义性很差自定义模拟tabbar页面优点是自定义性非常强,但是却存在严重的性能缺陷。现在提供一个解决方案,可以使用uni-app自带tabbar系统,保证性能的同时,又能尽情自定义tabbar导航栏自定义tabbar场景,不建议在一个页面内通过几个组件,用v-if/v-show切换去模拟各个页面,而应该使用uni-app自带的tabbar系统,同时隐藏原生的tabbar, 再引入自定导航栏,这样可以保证原有性能,同时又能自定义tabbar,思路如下:

2021-08-16 09:25:07 1094

原创 uni-app手写签名

<canvas canvas-id="firstCanvas" disable-scroll='true' @touchmove='move' @touchstart='start($event)' @touchend='end' @touchcancel='cancel' @longtap='tap' @error='error'></canvas>点击查看JS代码

2021-08-16 09:23:01 395

原创 uniapp上传本地文件

uniapp如何将本地文件附件提交接口上传到服务器使用 plus.io.resolveLocalFileSystemURL: 通过URL参数获取目录对象或文件对象使用 plus.io.FileReader: 文件系统中的读取文件对象,用于获取文件的内容使用 FileReader 的 readAsDataURL: 以URL编码格式读取文件数据内容点击查看代码示例...

2021-08-16 09:21:24 2589

原创 使用plus.webview.create创建的webview锁嵌套的html页面如何与app进行通信

首先,在html页面中引用官方的SDK <script src="../js/uni.webview.1.5.2.js"></script>紧接着,监听UniAppJSBridgeReady,等待sdk加载成功,然后使用 uni的 api,一些api可以直接使用,一些需要 uni.webVuew.api 调用<script> document.addEventListener('UniAppJSBridgeReady', function() {.

2021-08-16 09:19:15 1994

原创 uniapp如何清理缓存和广告下载的apk安装包文件

uniapp加入了广告之后,点击广告下载的apk使应用占用的存储越来越高,这些文件如何删除。// plus.io.requestFileSystem 请求本地文件系统对象 // plus.io.PUBLIC_DOWNLOADS 应用公共下载目录,多应用时都可读写,常用于保存下载文件// 详细介绍请查看官方文档plus.io.requestFileSystem(plus.io.PUBLIC_DOWNLOADS, function(fs) { // 对应Android系统应用外部存储目录(通常为

2021-03-20 16:59:27 2112

原创 uniappd的web-view组件无法动态加载本地html文件的解决办法

uniapp中使用腾讯地图api,首先从接口获取到一些参数之后,需要通过src的地址将一些参数传递下去由于web-view只加载第一次的初始路径,当loc改变时,web-view中获取不到loc的改变,并不会再刷新首先在template中先写上html的本地路径<template> <view class="map-container"> <web-view :src="`../../hybrid/html/map.htmlloc=${JSON.stri

2020-12-01 11:52:31 3583

原创 react实现全屏预览功能

react 实现全屏预览功能,使用 h5 的requestFullScreen api查看代码示例

2020-10-22 18:01:00 1933 1

原创 ES2020新特性js运算符 ?. 、?? 、??= 解释说明

js运算符 ?. 、?? 、??= 解释说明?. 可选链运算符,检查每个级别,如果碰到的是 undefined 或 null 属性,直接返回 undefined,不会继续往下检查?? 空值合并运算符,仅在 左侧 是 nullish (null 或 undefined) 时,使用右侧的值??= 逻辑空赋值运算符 (x ??= y) 仅在 x 是 nullish (null 或 undefined) 时对其赋值查看代码示例...

2020-10-21 18:17:40 3201 1

原创 var a=1; var b=2和a=1和var a=b=1和var a=1,b=2的区别

查看全文var a=1; var b=2和var a=b=1和var a=1,b=2的区别function fn () { var a = 1,b = 2 var c = d = 3 e = 4}fn()console.log(a) // a is not definedconsole.log(b) // b is not definedconsole.log(c) // c is not definedconsole.log(d) // 3console.log(e) /

2020-10-18 04:16:14 1151

原创 控制文本的行数,末行超出显示省略号...

查看原文-webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。text-overflow,可以用来多行文本的情况下,用省略号“…”隐藏超出范

2020-10-10 14:40:27 243

原创 var a=1; var b=2和a=1和var a=b=1和var a=1,b=2的区别

查看原文var a=1; var b=2和var a=b=1和var a=1,b=2的区别function fn () { var a = 1,b = 2 var c = d = 3 e = 4}fn()console.log(a) // a is not definedconsole.log(b) // b is not definedconsole.log(c) // c is not definedconsole.log(d) // 3console.log(e) /

2020-10-09 10:15:16 691

原创 原生JavaScript实现查找汉字首字母

1、列出常用字的拼音(常用字列表来自网络)var pinyin = { a: '阿啊呵腌嗄吖锕', e: '额阿俄恶鹅遏鄂厄饿峨扼娥鳄哦蛾噩愕讹锷垩婀鹗萼谔莪腭锇颚呃阏屙苊轭', ai: '爱埃艾碍癌哀挨矮隘蔼唉皑哎霭捱暧嫒嗳瑷嗌锿砹', ei: '诶', xi: '系西席息希习吸喜细析戏洗悉锡溪惜稀袭夕洒晰昔牺腊烯熙媳栖膝隙犀蹊硒兮熄曦禧嬉玺奚汐徙羲铣淅嘻歙熹矽蟋郗唏皙隰樨浠忾蜥檄郄翕阋鳃舾屣葸螅咭粞觋欷僖醯鼷裼穸饩舄禊诶菥蓰', yi: '一以已意议义益亿易医艺食依移衣异伊.

2020-08-08 21:12:45 5421

空空如也

空空如也

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

TA关注的人

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