- 博客(64)
- 资源 (4)
- 收藏
- 关注
原创 React 18 渲染机制优化:解决浏览器卡顿的三种方案
React 18引入的并发渲染机制通过将任务拆分到浏览器空闲期执行,可以有效解决UI卡顿问题。本文演示了三种优化方案:使用requestIdleCallback在空闲时段执行任务,通过requestAnimationFrame与屏幕刷新同步处理任务,以及利用MessageChannel实现任务调度。这些技术原理与React的并发渲染机制类似,都能在不阻塞用户界面的前提下完成大量计算任务。通过比较不同方案的实现效果,开发者可以更好地理解React 18内部如何实现高效渲染。
2025-06-11 23:08:28
849
原创 React Context 性能问题及解决方案深度解析
本文深入解析React Context的性能问题及优化方案。核心问题在于Context的粗粒度更新机制导致不必要组件重新渲染,浪费CPU和内存资源。通过源码分析发现,React仅检测整个Context对象引用变化,无法选择性订阅属性。文章提出三种优化方案:1) 将大Context拆分为多个小Context实现精准订阅;2) 使用useMemo和useCallback减少渲染;3) 封装高阶Selector组件实现细粒度访问。这些方案可显著降低组件无效渲染,提升应用性能。
2025-06-11 22:16:43
904
原创 从零开始搭建现代化 Monorepo 开发模板:TypeScript + Rollup + Jest + 持续集成完整指南
摘要:本文详细介绍如何从零搭建一个完整的Monorepo开发模板,涵盖TypeScript、Rollup打包、Jest测试等核心功能。首先创建项目结构并配置pnpm作为包管理器,然后设置TypeScript类型检查与模块解析策略。重点讲解了Rollup的多格式打包配置(ESM/CJS/UMD)和Babel转换方案,同时提供了Jest测试框架的配置方法。该模板采用现代前端工程实践,支持代码质量控制和CI/CD集成,为开发高质量可复用库提供了标准化基础架构。通过这种组织方式,可以显著提升多包项目的开发效率和维护
2025-06-10 21:27:39
950
原创 深入解析 GitHub Token 与 NPM Token:自动化发布的完整指南
它是 GitHub App 安装访问令牌权限仅限于当前仓库令牌在作业结束时或最多 24 小时后过期通过 ${{ secrets.GITHUB_TOKEN }} 引用。
2025-06-10 21:26:30
530
原创 docker buildx: faied to authorize: failed to fetch oauth token: Post “https://auth.docker.io/token
本文记录了Docker Buildx多平台镜像构建失败的排查过程。问题表现为构建时网络连接和构建器配置异常,错误信息显示代理连接被拒绝和认证失败。通过一系列检查,发现虽然单独拉取镜像成功但buildx构建失败,最终确认是构建器状态异常导致。解决方案包括删除问题构建器、切换到稳定构建器以及重新构建。文章总结了根本原因(网络路径差异、构建器配置问题和认证机制不同),并提供了最佳实践建议(构建器管理、网络配置和调试技巧)。整个过程展示了从网络、代理、构建器等多维度进行分层诊断的方法。
2025-05-29 15:04:17
842
原创 使用cursor开发一个Dicom viewer
随着 AI 技术的迅猛发展,其已逐步渗透到人们生活的各个方面。对于开发工程师而言,若不尽早适应 AI 的变革浪潮,将可能被时代淘汰。本文将展示如何利用 AI 驱动的代码编辑器 Cursor 开发一个 DICOM 医疗影像浏览器(Viewer)。下图为我们将实现的经过实际操作体验,Cursor 具备相当强大的代码生成和智能辅助能力,可以大幅度加速项目开发。然而开发的效率和效果依赖于两个关键因素:使用者的表达能力:能够清晰准确地描述需求,帮助 AI 理解项目需求。
2024-10-27 23:57:13
736
原创 微信小程序-登陆
本文介绍了如何在微信小程序中实现用户登录功能。主要内容包括使用微信提供的 wx.login() 接口获取用户的临时登录凭证 code,并将其发送至服务器,通过与微信服务器交互获取用户的 openId 和会话密钥 sessionKey。随后在服务器端完成用户身份验证,实现登录功能。该流程为微信小程序开发提供了基础的用户管理能力,帮助开发者有效识别和管理用户。
2024-10-09 10:49:53
967
原创 微信小程序接口实现语音转文字
我们有一个按钮,点击“开始录音”按钮,此时按钮变成“停止录音”并开始计时,点击停止录音后,界面上即可展示返回的文字。
2024-08-04 17:30:30
1620
原创 解决Browserslist: caniuse-lite is outdated.The code generator has deoptimised the styling of xxx as it
解决 Browserslist: caniuse-lite is outdated.解决 he code generator has deoptimised the styling of xxx as it exceeds the max of 500KB.
2024-06-05 23:13:57
732
原创 如何在镜像中安装固定版本的node和npm
最近在做前端工程化相关的内容,需要在一个镜像内安装固定版本的 Node.js 及对应的前端环境。接下来就记录一下,如何在 Docker 镜像内安装固定版本的前端相关环境。以下是详细步骤和代码示例。提示:以下是本篇文章正文内容,下面案例可供参考我们将使用 Docker 官方的 DinD(Docker in Docker)镜像作为基础镜像,然后在其上安装 Node.js 16.20、Npm、Nginx、Yarn 和 Pnpm 以及其他必要的软件包。# 使用 Docker 官方的 DinD 镜像作为基础镜像。
2024-06-02 18:48:01
1039
3
原创 解决MAC M1 Docker Desktop启动一直在starting
本文主要讲Docker Desktop如何开启Multi-platform;如何解决Docker Desktop一直在starting的时候
2024-06-02 18:05:46
2228
原创 webpack联邦模块介绍及在dumi中使用问题整理
webpack联邦模块使用Cannot read properties of null (reading 'useMemo')Error: Shared module is not available for eager consumptionerror - MFSU latest build error: AssertionError [ERR_ASSERTION]: dependence not found: xxxx问题解决方案
2023-07-27 21:26:48
1638
2
原创 css keyframes(css动画)在css_modules不生效解决方案
最近在项目(react)需要实现loading的动画,心想这不很简单么,结果发现动画怎么搞也不生效。
2023-04-06 09:00:00
1663
原创 超实用!!! 三分钟将你的项目部署在github page上
超实用!!!三分钟将你的vite/webpack项目部署到github page上
2023-03-21 20:50:43
1902
原创 解决 Public registration is not allowed 问题
解决😭😭😭 Public registration is not allowed 😭😭😭 问题
2023-03-15 21:17:47
4212
2
原创 解决docer login报错 panic: runtime error: invalid memory address or nil pointer dereference
解决docer login报错 panic: runtime error: invalid memory address or nil pointer dereference
2023-01-05 19:30:00
1326
原创 utbutu安装nvm node过程及问题记录
ubutu18.04安装nvm及node解决node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)问题解决Error: ENOSPC: System limit for number of file watchers问题
2022-12-21 20:37:47
864
原创 解决: docker mongo exception in initAndListen: 98 Unable to lock file: /data/db/mongod.lock
使用dokcer-compose部署了两个mongo,启动的时候报错。
2022-09-09 21:20:37
702
原创 解决:Webpack does not exit the program after finishing to compile
升级webpack5(5.72.1)配置后,发现webpack在生产环境build完成后不退出了。
2022-09-03 20:20:19
782
原创 解决npm public提示403 Forbidden - PUT https://registry.npmjs.org/js-toolkit - You do not have permission
npm ERR! code E403npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/js-toolkit - You do not have permission to publish "js-toolkit". Are you logged in as the correct user?npm ERR! 403 In most cases, you or one of your dependencies are requestin
2022-08-01 14:53:44
2254
原创 js 实现一个完美的toFixed(四舍五入)
toFixed函数可以满足一部分小数的四舍五入,但是因为浮点数不能精确地用二进制表示所有小数,所以toFixed四舍五入会在部分情况下出现异常。
2022-07-16 20:24:59
1906
5
原创 mac m1解决brew安装包时fatal: not in a git directoryError: Command failed with exit 128: git
mac m1解决brew安装包时fatal: not in a git directoryError: Command failed with exit 128: git
2022-07-13 13:29:40
3117
5
原创 超简单,如何使用cornerstone画出dicom
cornerstone/cornerstone-tools/cornerstone-wado-image-loader/dicom-parser相关工具使用demo
2022-06-22 00:26:33
1407
原创 跳过git pre-commit检查
如果要跳过pre-commit检查,只需使用 --no-verify参数,如下:git commit -m 'test' --no-verify
2022-06-05 18:51:53
4081
tigervnc ubutu安装包
2023-04-27
chrom linux 77.0.3859.0版本
2023-04-07
mac slicer-5.0.3
2022-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人