- 博客(344)
- 资源 (24)
- 收藏
- 关注
原创 性能优化的利器:SWC
SWC(Speedy Web Compiler)=「用 Rust 写的高性能 JavaScript / TypeScript 编译器 + 压缩器 + 打包器」。SWC 既可用于编译,也可用于打包。编译时,它使用现代 JavaScript 特性获取 JavaScript / TypeScript 文件,并输出所有主流浏览器支持的有效代码。SWC 在单线程上比 Babel 快 20 倍 ,在四核上比 Babel 快 70 倍。SWC 把“JS → JS”做成了Rust 的流式并行管道。
2025-07-17 06:56:39
889
原创 HTTP性能优化汇总
HTTP性能优化是提升Web应用响应速度、降低延迟和减少资源消耗的关键,常见的HTTP性能问题,如高延迟、带宽浪费、连接复用不足等。
2025-07-16 11:33:40
512
原创 HTTP REST API、WebSocket、 gRPC 和 GraphQL 应用场景和底层实现
技术协议/传输通信模式数据格式典型场景HTTP RESTHTTP/1.1或HTTP/2请求-响应JSON/XML通用CRUD、公开APIWebSocketWS(基于HTTP升级)双向全双工文本/二进制实时聊天、高频推送gRPCHTTP/2单/双向流Protobuf高性能微服务、跨语言调用GraphQL查询/订阅JSON灵活查询、数据聚合。
2025-07-16 10:40:23
762
原创 Monad:函数式编程中的 “容器模式”
Monad(单子)是函数式编程中的一种设计模式,本质是一个带有特定接口的容器类型。它允许你以一种结构化的方式处理副作用、异步操作或其他复杂逻辑,避免层层嵌套的回调或条件判断,使代码更具可读性和可维护性。return(或unit):将值放入Monad容器中。bind(或>>=):将容器中的值提取出来,应用一个函数,然后将结果重新封装回Monad。需要处理可能失败的操作(如网络请求、数据库查询)。存在复杂的异步流程(如多个依赖的API调用)。代码中充满嵌套的条件判断或回调函数。
2025-06-30 22:36:02
275
原创 【Node.js 的底层实现机制】从事件驱动到异步 I/O
Node.js 作为 JavaScript 后端运行环境,其核心优势在于高并发处理能力和非阻塞 I/O 模型。特点:高并发处理:单线程事件循环高效处理大量并发连接I/O 密集型任务:非阻塞 I/O 模型避免线程切换开销,不适合 CPU 密集型任务(如视频编码)前后端技术统一:JavaScript 全栈开发Node.js 不是多线程的,主线程是单线程,但通过线程池处理部分操作使用场景Web 服务器(如 REST API)实时应用(如聊天、协作工具)微服务架构中的网关 / 代理服务。
2025-06-18 21:24:59
1013
原创 【solidity 进阶】合约的升级方式及核心原理
合约升级虽然提供了灵活性,但也带来了安全风险(例如,升级权限被滥用)和复杂性。因此,在设计可升级合约时,需要仔细考虑升级机制的安全性,并尽量减少升级的必要性。在实际应用中,代理模式(尤其是透明代理和UUPS代理)是最常用的方法。
2025-06-16 10:27:04
334
原创 移动端1px问题解决方案汇总
在移动设备上,由于高分辨率屏幕(如 Retina 屏)的物理像素密度(DPR)大于 1,直接使用 CSS 的 1px 会导致视觉上比设计稿更粗,这就是移动端开发中常见的 1px 问题。例如,iPhone 13 的 DPR 为 3,CSS 的 1px 实际对应 3 个物理像素,导致边框看起来过粗。通过 JavaScript 动态修改 的 scale 值,强制让 1 个 CSS 像素等于 1 个物理像素。通过 css 媒体查询检测设备,动态调整边框的缩放比例。简单易用,不需要媒体查询。
2025-06-13 09:24:42
325
原创 移动端 1px 问题解决方案
在目标元素的后面追加一个 ::after 伪元素,让这个元素布局为 absolute 之后、整个伸展开铺在目标元素上,然后把它的宽和高都设置为目标元素的两倍,border值设为 1px。接着借助 CSS 动画特效中的放缩能力,把整个伪元素缩小为原来的 50%。此时,伪元素的宽高刚好可以和原有的目标元素对齐,而 border 也缩小为了 1px 的二分之一,间接地实现了 0.5px 的效果。在移动设备上,由于高分辨率屏幕(如 Retina 屏)的物理像素密度(DPR)大于 1,直接使用 CSS 的。
2025-06-11 22:30:32
673
原创 <script> 标签的 async 与 defer 属性详解
使用 async 和 defer 属性的脚本都是异步加载的,都不会阻塞 HTML 文档的解析,但是他们的执行时机是不同的,下面来详细说明一下。
2025-06-11 22:04:32
320
原创 ES Modules 与 CommonJS 的核心区别详解
ES Modules (ESM) 和 CommonJS (CJS) 是 JavaScript 中两种主要的模块系统,它们在语法、加载机制、作用域和适用场景等方面存在显著差异。在实际开发中,理解两者差异有助于避免模块加载错误和性能问题,尤其是在构建大型应用或库时。
2025-06-11 17:25:30
1304
原创 【每天一道算法题】用JavaScript实现的字符串比较算法
这个过程其实优点你查字典:先看第一个字母,谁小谁在前面;如果第一个字母一样,就看第二个字母,以此类推。如果都相同,但一个单词更短,那短的排在前面。
2025-06-07 09:55:54
340
原创 React 中 HTML 插入的全场景实践与安全指南
方法安全性适用场景推荐度JSX 重构✅可控的简单 HTML⭐⭐⭐⭐⭐⚠️不可控的信任 HTML⭐⭐⭐手动操作 DOM⚠️完全自定义 DOM 操作⭐⭐✅复杂 HTML 解析⭐⭐⭐⭐。
2025-06-06 17:09:51
1234
原创 react 常见的闭包陷阱深入解析
本文分析了React中常见的闭包陷阱问题。通过一段定时器代码示例,指出当依赖数组为空时,useEffect中的闭包会捕获状态变量的初始值而非最新值,导致状态更新失效。文章详细解释了闭包的概念及其在异步回调中的行为特性,并提供了两种解决方案:使用函数式状态更新或正确设置依赖数组。最后总结了stale值问题的本质在于闭包捕获的是变量的快照而非实时引用,提醒开发者在异步操作中注意闭包行为。
2025-06-06 16:39:44
828
原创 “packageManager“: “[email protected]“ 配置如何正确启动项目?
今天在学习开源项目的时候,在安装依赖时遇到了一个报错特此记录一下解决的过程。
2025-06-03 13:45:04
647
原创 Next.js路由导航完全指南
在前端框架(如 React、Vue 等)或移动端开发中,路由系统是实现页面 / 界面导航的核心机制。Next.js 采用 文件系统路由(File System Routing),即根据项目目录结构自动生成路由。Next.js 目前有两套路由解决方案,Next.js 从 v13.0.0 版本开始引入 App Router,之前的方案称之为“Pages Router”,目前的方案称之为“App Router”,两套路由系统可以相互兼容,Next.js v14+ 默认启用,本文基于 next v15版本说明。
2025-05-29 22:34:08
1298
原创 Next.js 布局(Layout)与模板(Template)深度解析:从原理到实战
在 Next.js 中,布局(Layout) 和 模板(Template) 都是用于组织页面结构的特殊文件,但它们在行为和使用场景上有重要区别。
2025-05-29 20:51:49
504
原创 【JavaScript 高级】事件循环机制详解
JavaScript通过事件循环机制实现单线程下的异步编程。核心概念包括调用栈(LIFO结构跟踪函数调用)、任务队列(FIFO结构存储异步任务)和事件循环(监控调用栈与队列)。执行顺序为:同步代码>微任务(Promise等)>宏任务(setTimeout等),且每次事件循环必须清空微任务队列。需注意避免微任务递归导致阻塞,不同环境实现可能略有差异。这种机制使JavaScript能高效处理并发任务而不阻塞主线程。
2025-05-29 20:14:54
497
原创 Web Vitals 核心指标快速掌握指南
TTFB(Time to First Byte),是指从点击链接到浏览器收到第一个数据字节的时间,它反映了服务器响应请求的效率。目标< 200 ms,为良好。FCP(First Contentful Paint),也称为首次内容绘制,是指用户看到第一个内容元素(比如文本、图片)的时间。LCP(Largest Contentful Paint),又称作最大内容绘制,是指页面上最大内容元素(通常为主图、标题等)完全渲染的时间。
2025-05-28 11:50:40
633
原创 Webpack 分包策略详解及实现
Webpack 的分包策略(Code Splitting)是优化前端应用性能的重要手段,它能将代码拆分成多个 bundle,实现按需加载或并行加载,从而减少初始加载时间。
2025-05-21 10:33:58
864
原创 【solidity基础】一文说清楚合约函数的大小事
/ 函数体function 关键字声明函数functionName:函数的名称。parameterType 和 parameterName:函数的参数,可包含多个参数,参数之间用逗号分隔。visibility:函数的可见性,如 public、private、internal、external。modifiers:可选的修饰符,如 pure、view、payable 等。returns:指定函数的返回值类型,可返回多个值。
2025-05-21 09:55:41
787
原创 【solidity必知】常见的address(this),tx.origin 和 msg.sender 语句解释
address(this):当前合约的地址tx.origin:合约调用源地址msg.sender:合约的调用者。
2025-05-21 09:54:31
364
原创 web2转行web3需要知道的那些事
我本身是一个前端开发,所以这篇文章的出发点也是一个前端人转行web3的总结,有我自己的学习经验以及网上整理的一些内容,希望对大家有帮助。
2025-05-21 09:52:46
1095
原创 【钱包协议】:WalletConnect 详解
WalletConnect 是一种开源协议,用于在去中心化应用(DApp)和加密钱包之间建立安全连接,实现跨设备通信。它通过端到端加密的通信通道,允许用户通过移动钱包(如MetaMask Mobile、Trust Wallet等)与桌面或网页端的DApp进行连接和交易签名,而无需暴露私钥或敏感信息,为 Web3 应用提供了更安全、便捷的身份验证方式。WalletConnect 是一个链无关的协议生态系统,专注于为用户提供跨钱包和应用程序的无缝连接服务。
2025-05-21 09:43:52
987
原创 【钱包协议】 EIP1193 和 EIP6963 详解
特性EIP-1193EIP-6963解决的问题钱包与 DApp 的通信协议不统一钱包发现与连接流程不便捷核心功能标准化 API 方法和事件系统自动扫描钱包、统一连接界面技术实现浏览器对象数组依赖关系独立标准依赖 EIP-1193 实现现状已广泛支持(MetaMask、WalletConnect)2023 年提出,逐步被钱包和 DApp 采纳。
2025-05-21 09:42:41
729
原创 【solidity必知】抽象合约与接口的知识点汇总
抽象合约是包含至少一个未实现函数(抽象函数)的合约。抽象函数没有函数体,仅定义了函数的签名,要求继承该抽象合约的子合约必须实现这些抽象函数。抽象合约通过 abstract 关键字实现。要实现一个抽象合约,必须在继承的子合约中提供这些未实现函数的具体实现。// 定义抽象合约// 状态变量// 构造函数// 抽象函数,没有函数体// 普通函数,有函数体// 继承抽象合约的子合约// 实现抽象函数。
2025-05-01 06:32:38
531
原创 【solidity基础】一文说清楚合约函数的大小事
在Solidity里,函数是合约的关键构成部分,用于执行特定任务或操作的代码块,可以包含逻辑、访问状态变量、进行计算,并且可以接受参数和返回值。但是solidity的函数与其他语言不太一样,经常会有同学搞混,这里开一篇文章完整介绍一下solidity函数的用法。
2025-04-30 17:25:01
1174
原创 mitt 事件发布-订阅库在 react 中的使用
mitt是一个轻量级的事件发布 - 订阅库,在 React 项目里,使用它能实现组件间的通信。
2025-04-28 10:19:31
537
原创 手把手教你用 react-intl 实现国际化
在项目中创建不同语言对应的消息文件,这些文件通常是 JSON 格式,用于存储不同语言的文本信息。在需要使用国际化文本的组件中,引入 useIntl 钩子(函数式组件)或 injectIntl(类组件)来获取翻译函数。在应用的根组件中引入 IntlProvider,并根据用户选择的语言或浏览器默认语言提供相应的消息资源。首先,你需要在项目中安装 react-intl。
2025-03-20 11:41:43
351
原创 手把手带你配置:mac电脑react- native环境
Node.js 是 JavaScript 运行环境,Watchman 用于监控文件系统变化。
2025-03-04 15:50:29
573
2
转载 从0到1构建部署Arbitrum Stylus合约的完整流程
创建 .env 文件存储自己的私钥(在根文件夹里创建,直接把私钥放在.env 文件里,如下图所示,切记只在测试时使用这种私钥存储方法,主网生产时使用此方法存储私钥容易被盗),存储私钥后运行部署命令。安装 Stylus CLI 工具,它用于协助在 Rust 中构建、验证和部署 Arbitrum Stylus 程序。添加 WASM (WebAssembly) 作为 Rust 编译器的构建目标。安装 foundry 用于 Ethereum 远程调用,便于我们后续调试。成功后,继续执行,安装 foundry。
2025-02-27 11:04:12
80
原创 VSCode AI提效工具,通义灵码前端开发体验
安装依旧很简单,vs code拓展插件中搜索就出来了,记住下边这个图标。这对程序员提效真的太哇塞了,有数据显示可以直接节省12%的开发时间。只要你描述的够详细,需求实现的越完善,这在同类产品中确实出众👍!重要的是个人版完全免费,这对普通开发者简直太友好了。(1)根据我的需求描述,进行功能需求分析。(2)生成的完整项目结构,及详细的代码。
2025-02-19 20:09:54
635
原创 vue3 项目如何接入 AI 大模型
例如,定义一个message数据模型用于绑定输入框,创建sendMessage方法处理发送消息的逻辑,包括将用户输入的消息发送到后端API,并接收AI的回复。创建对话组件:在src/components目录下,创建一个如Chat.vue的组件文件,用于实现对话功能。注册对应AI平台的账号,进入账户设置页面找到“View API Keys”或类似选项,创建属于自己的API密钥,并妥善保存。确定要接入的AI模型,如OpenAI的gpt-3.5-turbo、科大讯飞的星火大模型等。
2025-02-14 15:08:56
1629
原创 本地部署deepseek的具体方法,无需联网也能使用AI了
Ollama 是一个开源的本地大语言模型运行框架,旨在帮助用户在本地机器上轻松部署和运行大型语言模型(LLM),而无需依赖外部服务器或云服务。Ollama 为开发者和终端用户提供了简单高效的接口,使得本地运行和管理大型语言模型变得更加便捷。这里以7B模型为例,根据你的硬件配置,也可以选择其他大小的模型,如1.5B、8B、14B等。如果需要通过网页使用,可以下载并安装支持Ollama的网页应用。在终端中输入问题,即可与DeepSeek进行交互。然后在网页应用中选择Ollama作为模型提供方。
2025-02-05 11:07:53
1344
原创 如何快速创建一个 vue3 项目?
Vue CLI:功能强大,支持多种配置和插件,适合复杂项目。Vite:开发体验极佳,启动速度快,适合现代前端项目。官方模板:简单快捷,适合快速上手。StackBlitz 和 CodeSandbox:在线编辑,无需本地环境,适合快速原型开发和学习。你可以根据自己的需求和偏好选择适合的方法来创建 Vue 3 项目。
2025-01-17 10:08:06
1165
原创 一文读懂 React 的 Fiber 架构到底是什么?
React 的 Fiber 架构是 React 16 版本引入的一种新的架构,旨在改善 React 的渲染性能和用户体验。
2025-01-16 18:31:54
613
利用ollama搭建本地deepseek服务
2025-03-04
中文简历模板(可编辑)
2025-02-14
英文简历模板(可编辑)
2025-02-14
快速自学JavaScript的基础语法
2019-11-22
git基础知识整理.pdf
2020-01-02
influxdb详解-从入门到精通
2022-11-25
processing 可视化设计工具
2022-06-02
前端vue项目实现返回顶部功能的两个超简单方法
2022-03-29
flowup鼠标滚动页面缓慢滑出的效果插件下载
2019-12-18
微信小程序表单验证.rar
2021-10-19
微信小程序自定义时间选择器
2021-05-27
wx-timePicker-master.rar
2021-03-24
mac版本 git 图形化工具Sourcetree 安装包.zip
2020-06-24
Snipastemac 截图
2020-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人