Webpack 5 已经发布很久了,好奇 Webpack 6还会有吗,还是说Webpack之后就退出历史舞台?最近翻了下Repo,得到了答案。
4月 2, 2025
表单作为用户交互中常见形式,值的验证/状态管理是个问题。 在react技术栈下中React Hook Form包名: react-hook-form功能强大,对于复杂表单管理,是个不错的方案。 为了能灵活恰当的使用它,这里把常用场景/使用/容易忽略的点/核心原理做一个总结,如有疏漏,请斧正。
3月 31, 2025
最近做GitLink时需要用到代码高亮,所以研究了下highlight.js,发现了使用中的一些问题,记录一下。 导入highlight.js 如果是WEB网页想CDN导入,或者直接src导入,并不应该直接使用highlight.js的资源,而是应该使用highlightjs/cdn-release
3月 25, 2025
之前使用ssh2-sftp-client来实现了终端文件上下载,同时因为支持流方式,所以做到了分片上传和下载,同时也就有了进度条。但传输时候网路是有不确定性的随时中断,那么就需要断点续传。这里了解了下ssh2-sftp-client的实现,发现实际上支持断点是具备可行性的。
3月 21, 2025
最近接触一个项目使用的nextjs,构建发布整个时间消耗为12min,或者更长。查看整个构建过程,发现还是有优化点的,这里mark下。
3月 20, 2025
Mac下OpenEmu玩游戏,如果直接使用键盘操作,会很不方便。手上有Xbox游戏主机,查询后发现Xbox手柄可以连接Mac来玩OpenEmu的小游戏。这里mark下操作步骤。
3月 20, 2025
最近使用monaco-editor来实现JSON数据编辑器,为了提升用户体验,需要实现JSON Schema的智能提示。研究后发现了实现方法,因此这里Mark下。
3月 19, 2025
最近入手了MacBook Air M4,使用了几天觉得很不错,这里mark下我的使用体验。
3月 19, 2025
EventEmitter初版 class EventEmitter{ constructor(){ this.events={} } on(type,listener){ if(!this.events[type]){ this.events[type]=[] } this.events[type].push(listener) } emit(type,...args){ this.events[type].forEach(listener=>{ listener.call(this,...args) }) } off(type,listener){ if(this.events[type]){ const index=this.events[type].indexOf(listener) if(index!==-1){ this.events[type].splice(index,1) } } } once(type,listener){ const onceListener=(...args)=>{ listener.call(this,...args) this.off(type,onceListener) } this.on(type,onceListener) } } 测试 const eventEmitter=new EventEmitter() const listener=(args)=>{ console.log(args); } eventEmitter.once('test',listener) eventEmitter.off('test',listener) eventEmitter.emit('test',{a:1}) 执行上述代码,会发现test事件被触发了一次,预期应该是不执行的,因为off了。解决办法如下。
3月 18, 2025
最近开发的gitlink插件遇到个问题,在WebView中加载node_modules资源,当然也可以直接使用CDN资源,只是速度上来说不如直接加载本地资源,因此这里解决下如何加载node_modules资源。
3月 17, 2025