- 博客(43)
- 收藏
- 关注
原创 一道并发的面试题,控制并发数量
如下所示其实可以联想到,这里有两条任务线在并发执行,任务1 由于10s后才输出,任务2 是5s后输出,所以任务3 会排在任务2后面执行,这就是为啥任务3 明明传入3s,但结果是8s后才输出了,依次类推,任务4接上,到任务5时,任务1执行完毕,此时任务2那条线,任务4在执行占用,所以任务5接在任务1后执行。
2025-05-20 14:26:33
96
原创 一道解构的面试题,var [a, b] = { a: 3, b: 4 }
你只要有一个对象啊,不管是啥东西,你是数组也好,函数也好,你只要是对象无所谓的,只看你这个对象里边有没有一个知名符号,[Symbol.iterator]:fn, 并且这个符号是一个函数,如果说满足这样的一个要求,那么你就是一个可迭代对象。一调这个函数就表示开始迭代了,他会得到数组的下一项是啥,value表示是3,那么这个done表示,迭代是否完成,这个false,表示没完成。这是有要求的,这个函数呢,它得返回一个东西,返回什么呢,它的返回一个迭代器。确实很有意思,为此记录分享下,仅供参考学习。
2025-04-22 16:51:01
318
原创 小技巧1,在vue3中利用自定义ref实现防抖(customRef)
在 Vue 3 中,customRef 是一个用于创建自定义响应式引用的 API。它允许开发者更细粒度地控制响应式引用的行为,特别是在需要进行特殊的响应式处理时。customRef 接受一个工厂函数,返回一个包含 get 和 set 方法的响应式引用。最后这里只是多介绍一种方案实现,至于这个技巧方案好不好用,因人而异吧,有些人喜欢,有些人不喜欢,但不管怎样,多一种实现方案总归是好的。就这样写了一堆,要是个别地方使用其实还好,但是很多地方都要使用,就感觉有点臃肿了。或者说,在vue中如何去使用防抖最舒服呢?
2025-04-22 14:32:58
375
原创 vue2中,H5实现,腾讯地图标记点位,选择点位高亮,缩放渲染等功能记录
这个项目很久很久的,由于低层是vue2 + js的,所以没办法我给大家的也是vue2 + js的,最开始拿到这个需求其实感觉挺棘手的,为什么呢,这种地图相关的做的少,由于是这种选择,缩放显示,根据定位啥的渲染,但实际做下来很简单,唯一让我很烦躁的就是,官方文档想找到些有用的不好找!其实这里上面就提到过,无非就是this.label.on(‘click’, this.clickLabel) // 这里是增加点击事件,增加完后,其实更新对应样式ID就好了。最后希望对大家有所帮助啦。
2025-04-22 10:55:56
527
原创 关于tsconfig.json文件,提示选项“importsNotUsedAsValues/verbatimModuleSyntax”已删除。请从配置中删除它问题解决!!!
在vue3 + ts 中可能之前搭建的代码,要是中间都没改过配置会这升级包,可能tsconfig.json可能都会飙红了,以下是我一个通过用命令式搭建的uniapp小程序,环境是vue3 + ts的,大概一年前搭建的吧,今天偶然发现这个飙红,其实可能很早就有了, 但是今天才有空解决。。。
2025-04-21 10:43:59
405
原创 记录一次后台项目的打包优化
优化,所有开发者到一定的程度上,都绕不开的问题之一首页加载优化白屏优化列表无限加载滚动优化,图片加载优化逻辑耦合,复杂度优化,如何降低复杂度打包优化以上这些,只是简单举例,类似的优化其实还有很多,诸如此类的优化,如果细细拆分开来,其实感觉不会带来多大效果,但是组合起来,还是能让人大吃一惊以下是我分享一次打包优化的过程。
2025-04-16 16:00:07
1122
原创 简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么
最近总有些同事问我为什么喜欢使用pnpm,除此之外慢慢开始带实习生,为了让一些基础的能够认清这些差别,所以简述下我的认知(仅供参考)yarn、npm、cnpm 和 pnpm 是四种流行的 JavaScript 和 Node.js 包管理工具。虽然它们都用于管理项目依赖,但在设计理念、功能和使用方式上存在一些显著的区别。基本介绍:npm 是 Node.js 默认的包管理工具,随着 Node.js 的安装自动提供(其实你安装node,就会自带npm下来了)。
2025-03-14 16:58:57
1666
原创 vue3+ts+vite环境中使用json-editor-vue3,记录遇到的奇奇怪怪问题!!!
vue3+ts+vite环境中使用json-editor-vue3仅仅简单记录下最近使用这个插件的一些注意事项,这个插件很容易使用的。json-editor-vue3文档以上是我在实际使用json-editor-vue3的过程,最后说下为什么比较强大呢,因为它是由一个错误回掉的,这样我们是可以知道这个输入json内容和不合规的,并且怎么提示。
2025-03-13 19:35:36
1794
2
原创 浅谈观察器IntersectionObserver API(API简介和简单示例)
【代码】浅谈观察器IntersectionObserver API(API简介和简单示例)
2025-03-04 11:32:21
756
原创 vue自定义指令——input输入数字类型限制(例如控制,小数点后位数,最小值,最大值),解决中文输入法双向绑定失效问题
通过compositionstart和compositionend事件设置锁定标识,解决中文输入法的问题实现一个自定义指令(v-inputNum),输入内容限制只能输入数字类型,自由限制最小值和最大值,可以控制最多保留小数点后几位。
2025-01-07 10:26:16
677
原创 js中明明看起来相同的字符,为什么比较是否相等的时候为 false !!!
js中明明看起来相同的字符,为什么比较是否相等的时候为 false !!!
2024-11-19 22:46:32
374
原创 git 常用命令大全
git命令Git GUISourceTreeGitKraken等等,或者借用vscode/webstorm等开发工具里面自带的图形界面来图形化界面的形式实现git功能。我个人还是喜欢使用最基础的命令操作哈,有人感觉装逼,有人感觉命令更加方便,我单纯比较懒,一直用命令,用习惯了,以下仅仅是个人常用的命令总和,担心那天忘了,自己看看,哈哈。
2024-11-14 17:31:23
1295
原创 vue2.7.14 + vant + vue cli脚手架转vite启动运行问题记录
vue cli 脚手架转成vite启动简单说说这个项目的一些底层基本结构哈,以及写这篇博客的目的。这个项目底层结构是vue2.7.14 + vant ,使用vue cli脚手架搭建的一个H5项目,由于内容比较多,并没有使用vue3重构,但是由于内容过多,渐渐的启动特别耗时,所以计划该用vite去优化启动项。写这篇博客,是记录本人在这个转换过程中遇到的一些问题。在实际的过程中我用了两种方案,第一种利用插件webpack-to-vite。第二种是自己搭建vite。
2024-11-13 15:49:45
1378
原创 TypeError: Cannot read properties of undefined (reading ‘__asyncLoader‘)
项目场景:vue3+element-plus+ts+vite的技术栈开发的后台,一个后台列表页面,使用了ElTable组件。
2024-11-02 15:41:43
866
原创 Vite 中 import.meta.glob 遇到的问题
使用vite做打包工具的,相信对这个glob的方法或多或少都有所了解,在vite2版本后开始增加这个导入功能,这也是vite独有的功能,通俗的讲这是用来动态导入用的Vite 支持使用特殊的 import.meta.glob 函数从文件系统导入多个模块匹配到的文件默认是懒加载的,通过动态导入实现,并会在构建时分离为独立的 chunk。这里的eager: true参数的作用是,直接引入所有的模块(官方文档更倾向于这样)
2024-10-24 14:44:52
3230
原创 腾讯云自动构建微信小程序,生成预览码,上传微信管理平台
提示:本文的环境是腾讯云(CODING) + uniapp + 钉钉自动化构建微信小程序,其实每个平台的方法是不一样的哈,我这里也只是记录下个人完成的情形,如果有人跟我的基础条件一样,那很幸运啦,我把坑都踩完了。当然不一样,也没关系,可以借鉴或者保存下,毕竟万一以后工作上用到了呢?是吧最终实现目标,腾讯云中点击构建,自动打包,编译,上传预览,生成二维码后,由机器人发到钉钉群里面。
2024-09-23 17:27:39
1132
原创 记录node环境下执行ts文件一些问题,以及Node.js 版本 v22.6.0下可以直接执行ts文件
注意细节,为什么我说目前哈,因为Node.js 近日刚合并了一个 PR#53725[1],主要内容是通过设置 flag --experimental-strip-types,使得可以在 Node.js 中直接执行 TypeScript 文件。换一个吧,我用CommonJs规范,引入吧,上一个问题用ES的规范,我感觉进入死胡同了。写着写着呢,突然想着用ts去实现它,一方面是项目是用uniapp + vue3 + vite + ts搭建的,想着保持统一,使用ts文件,另一方面呢也有点强迫症。
2024-09-13 13:39:31
3334
原创 uniapp小程序转原生app打包,提示文件查找失败
一个这么小的问题花费一个多小时才解决(自己都感觉挺尴尬的),讲真的开始也很纳闷,甚至怀疑自己,也百度查过,没找到什么有用的信息,还好比较幸运,多想了下,多尝试了下,把问题解决了。但最后转成的app还是有问题,那是因为这个小程序用的ui组件是vant-weapp,转出后,所有样式问题严重丢失,因为,vant-weapp压根不兼容app端,还有自定义tabBar,在ios环境里面会出现两个tabBar,最后小程序借助微信登录获取用户信息这块,app是要改的。综上所述,待定吧,转的成本也不低啊,一堆问题。
2024-07-02 18:07:33
1271
原创 Option ‘importsNotUsedAsValues‘ is deprecated and will stop functioning in TypeScript 5.5. Specify c
Option 'importsNotUsedAsValues' is deprecated and will stop functioning in TypeScript 5.5. Specify c
2024-05-08 15:12:53
1835
原创 此模块是使用 “export =” 声明的,只能在使用“esModuleInterop”标志时用于默认导入。
最近开发中代码出现了一个很奇怪的报错,不影响使用,但是看着很难受,自从用了ts和eslint,看到报红挺难受的,虽然不影响功能,具体是什么错误呢,请看下图。但是具体为什么呢,这位大佬的博客也讲解了很清楚,我就不细说,直接引用下,虽然是react的模版,但其实都是通用的。开始自己也尝试在tsconfig.json去过滤这个报错,但是好像没啥效果,找到一个大佬的博客,顺利解决。我引了个dayjs,处理时间的第三方插件,功能上不影响使用,但是个人看着很难受哈。
2024-05-08 14:49:55
742
1
原创 vue3页面生成水印
之前开发需求,产品希望给所有中台页面添加水印,一方面防止内部人员截图泄漏数据,一方面水印上的内容可以增加些标识,从而能定位到是那个人发出的。当然这只是一种防护的手段,毕竟水印也是能去除的,但不管怎么样,加这么层东西还是感觉十分有必要的,比如你要分享什么设计稿,你打个logo,水印,最起码能起到点防止作用。好了,我也不多说,直接分享上代码,咱主打的就是复制就能用,丝毫不墨迹。使用写了个hooks哈,useWatermark接收两个参数,一个是水印的透明度,可以不传,默认0.15,第二个参数是水印绑定
2024-04-29 16:49:26
572
1
原创 拦截接口重复请求
可能我这个封装的也会有点问题哈,仅供参考,由于我比较懒,我不想每次都去实际方法中做拦截,或者加loading,或者加防抖,因为我可能会忘,所以我想着直接在最终的请求中自动去拦截。当然也可以用lodash中的防抖,之前我用过的,挺好用的()=>{console.log('删除操作等业务逻辑')},500,leading:true,//在延迟开始前立即调用事件trailing:false,//在延时结束后不调用,保证事件只被触发一次},)```
2024-04-22 14:43:35
257
原创 跨标签通信的常见方案
个人感觉使用其实很简单,花个几分钟就能实现,当然以上其实还需要个关闭通道,channel.close(),要是想优化封装下,那再花点时间即可,这里我就不去封装了,我认为呢,这个东西难就难在你知不知道有这个东西,也就是知识面的广度,我写的也很随意,个人感觉这种可能确实不是很常用,但是可以去了解下,增加知识的广度。当然咯,我也知道有些小伙伴想了解下其他方案,或者有小伙伴想要一个能封装好的代码。这里我找到了两篇比较好的大佬博客,大家可以翻阅查看BroadcastChannel简单封装封装链接其他方案详细讲解。
2024-04-17 16:19:28
396
原创 vue3多页面中如何共用pinia的数据
这篇文章本质是想请教一个问题的,最近在搭建一个多页面的vue3项目,多页面吗,这意味着我有多个main.ts入口文件,最后打包也会生成多个xxx.html文件,我想当项目很庞大的时候,又或者为了后期扩展,多页面有时候也是一个不错的选择,但这在实际场景中会出现这么一种情况。
2024-04-16 17:58:58
1613
4
原创 unplugin-auto-import自动导入Eslint和Ts警告问题 找不到名称“ref”。ts(2304)
希望各位能顺利解决,以上是我整理出来的结果方案。
2024-04-08 19:38:21
5804
7
原创 Unable to preventDefault inside passive event listener invocation报错
Unable to preventDefault inside passive event listener invocation报错解决方案
2023-11-09 10:08:05
8764
8
原创 个人开发习惯
format文件夹:整个文件夹是我用来处理数据逻辑的,就比如在页面中查询数据后要渲染时,很可能服务端给的数据需要处理下才能使用,又或者需要组装下,但是如果放在vue文件中,script中很可能会感觉太拥挤,此时我就会写成一个方法,放在format中去处理再返回我需要的新的数据出来,这样逻辑和视图区分的更彻底,同样也不会让整个页面因为逻辑处理过多,导致一个也面可能出现上千行代码。components文件夹:存放整个项目中共用的组件,比如自己封装的弹框,按钮,输入款,又或者是某些项目中的功能性组件等等。
2022-08-24 13:35:24
478
原创 前端数据类型效验区分
第一种:typeof(返回相应的数据类型)这种方法不难看出,当数据类型为引用类型时,检测出返回的是object类型,其中对于null检测出也是object,熟悉原型链的就知道,最终指向的其实就是null,所以这种方法个人认为适合检测基本数据类型第二种:instanceof(返回布尔值,判断是还是不是)这个相对于上面一种是比较好一点的,但是还是存在偏差,不够准确,比如 Array 和 Object 都出现在 [] 的原型链上,可能会将 [] 误认为 Object 类型。
2022-08-24 11:04:32
417
原创 前端精度丢失
很多业务场景呢,其实或多或少涉及到金额的计算,不管前端还是后端,只要涉及到金额的处理其实精度丢失问题是不可避免的例如:医疗类,餐饮类,零售类,其实只要有支付,有账单就都可能存在精度丢失的问题。
2022-06-08 17:25:19
3160
原创 初学者虚拟DOM与snabbdom库了解
1. 什么是虚拟DOM?虚拟DOM就是使用js对象模型来模拟真实DOM节点2. 什么是diff算法?思维: diff算法起初来源于后端,用于比较两个文件的差异,3.为什么要用虚拟DOM?因为在真实项目中,操作dom节点是很正常的,因为要渲染页面,然而,其实操作dom节点次数越多,加载的会越慢,损耗的资源越大,这让一个用户的体验会讲底,我们来看下面这段代码,让你体会操作虚拟dom会比真实dom的效率高多少。以下是结果:可以看到差距,同样是循环一百万,如果直接操控真实dom要花三十多秒
2020-06-02 11:49:25
504
1
原创 小白世界里的数组去重
数组去重数组去重这种问题很常见,常见的方法有很多种,作为初学者的我,也整理了以下四种,个人认为这四种容易理解,也实用set方法该方法是Es6新增语法,同时该方法的特点是元素不能重复可以利用这一特点达到数组去重例:letlet arr = [1, 2, 3, 3, 2, 4, 5, 1, 6, 5, 3, 7, 8, 8, 8];let s = new Set(arr);console.log(‘set:’, s);双重for循环加splice截取利用循环比较,加上splice截取
2020-05-24 14:38:17
195
原创 小白自制js进度条小demo
加粗样式时光匆匆啊,目前还是只能待在家最好啊,小白最近在学js了,所以想做点小东西,勿喷哈,比起大神,我可是小白的小白,仅供娱乐哈视频地址http://www.56.com/u33/v_MTYzNTEzODc4.html。欢迎欣赏。废话不多说先把结构,样式搭上吧。相信这种简单的结构样式代码,各位肯定能明白,我就不多解释了,今天的重头戏,js。首先说下我做这个小demo的思路。我先搭...
2020-03-22 20:59:09
268
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人