跳到正文
MARSCODE
& MOTION

Blog

技术博客

记录踩过的坑、学到的东西和一些思考。共 50 篇文章,欢迎交流。

#WebSocket#Vue 3#TypeScript#网络

Vue 3 中构建可靠的 WebSocket 连接

从连接状态、消息队列到主动关闭与指数退避,完整实现一个不会重复重连、能正确清理资源的 Vue 3 WebSocket composable。

阅读全文 →
#IndexedDB#TypeScript#浏览器#数据库

IndexedDB 实战入门:事务、索引与 TypeScript 封装

用一个可运行的消息存储示例理解 IndexedDB 的版本升级、对象仓库、事务和索引,并避开常见的生命周期问题。

阅读全文 →
#前端工程化#CI/CD#工程质量#团队协作

前端工程化实践:从项目约定到 CI/CD

前端工程化不是工具清单,而是一条降低重复劳动和交付风险的渐进路径:可复现环境、静态检查、测试、构建、CI/CD 与可观测性。

阅读全文 →
#Code Review#工程化#TypeScript#代码质量

前端 Code Review 实践:从本地检查到团队协作

一套可渐进落地的前端 Code Review 方法:自动化检查负责确定性问题,人工审查聚焦逻辑、边界、安全与可维护性。

阅读全文 →
#Chrome#DevTools#调试#效率

Chrome DevTools 调试技巧:从定位元素到追踪请求

围绕真实排障流程整理 Chrome DevTools:元素与样式、全局搜索、条件断点、Network 请求分析、Console 辅助变量和设备模拟。

阅读全文 →
#部署#阿里云#SSH#fail2ban#HTTPS#踩坑

阿里云服务器答疑实录:部署、HTTPS 与 SSH 加固踩坑记

从零把个人网站部署到阿里云轻量服务器,全流程答疑整理:复用已有 nginx 而不是 Caddy、Let's Encrypt 免费证书、浏览器提示不安全其实是混合内容、SSH 密钥登录加固,以及 fail2ban 误封自己怎么自救。

阅读全文 →
#部署#Docker#Nginx#HTTPS#acme.sh#Next.js

部署个人网站:Docker + Nginx 免费 HTTPS 实战

记录 marsmz.top 从 Docker 部署、Nginx 反向代理到使用 acme.sh 免费申请和自动续期 HTTPS 证书的完整过程。

阅读全文 →
#羽毛球#训练

反手后场怎么练:业余球友的三个月心得

反手一直是业余爱好者的老大难。分享我踩过的坑和一套可复制的训练方法,从完全不会到高远球稳定率 65%。

阅读全文 →
#Next.js#Tailwind CSS#博客

用 Next.js + Tailwind 搭建个人博客:踩坑记录

从零手动搭建 Next.js 项目的全过程,包括 Tailwind v4 配置、Markdown 博客系统、暗色模式和 SEO 优化的一些坑。

阅读全文 →
#React#setState

为什么 SetState 是异步的

React 官方 issue 中核心开发者 gaearon 的解答:setState 为何是异步的——保证数据一致性,并为并发更新铺路。

阅读全文 →
#Chrome#浏览器#插件

Chrome 浏览器插件

如何找到已安装 Chrome 插件的本地文件、识别插件 ID,并把 .crx 插件打包分享给朋友,一篇图文实战。

阅读全文 →
#JS#ES6#严格模式

严格模式

ES6 引入的严格模式能在代码早期就暴露错误和潜在问题,本文梳理它的规则与使用场景。

阅读全文 →
#小程序#ECharts

在小程序中使用Echart

在小程序里接入 ECharts 遇到的问题与解决过程:canvas 初始化、尺寸自适应等实战记录。

阅读全文 →
#安全#加密#科普

前端应该了解的加密种类

前端需要了解的加密基础知识:MD5、Base64、对称与非对称加密的简单科普与常见应用场景。

阅读全文 →
#JavaScript#undefined#null

浅谈 undefined & null

深入理解 JavaScript 中 undefined 与 null 的区别:类型检测、真值判断,以及各自的适用场景。

阅读全文 →
#工具#效率

工作中提升效率的工具

作者工作中常用的提效工具与方法整理,涵盖开发、文档与日常协作,值得一试。

阅读全文 →
#翻译#Redux

你可能不需要 Redux

Redux 作者 Dan Abramov 的经典文章翻译:什么时候你真的需要 Redux,什么时候它只是负担。

阅读全文 →
#翻译#React#派生状态

你可能不需要派生状态

React 官方关于 getDerivedStateFromProps 滥用反模式的讨论与替代方案翻译,帮你避开派生状态的坑。

阅读全文 →
#移动端#滚动穿透#JS

蒙层穿透

移动端蒙层滚动穿透问题的解决方案:区分弹层有无滚动条,用 catch touchmove 等技巧阻止底部页面滚动。

阅读全文 →
#Less#CSS#预处理器

Less 初试

Less 入门笔记:环境安装、变量、嵌套、混合等核心语法,配合示例快速上手 CSS 预处理器。

阅读全文 →
#JS#数组#字符串

数组 & 字符串常见易忘方法

数组与字符串常见但易忘的方法速查:slice、splice、pop、push、substr、substring 等对比与用法。

阅读全文 →
#JS#数组#去重

你不知的数组去重

JavaScript 数组去重的多种姿势:双重循环、indexOf、Set、filter 等,逐个比较时间复杂度与优缺点。

阅读全文 →
#翻译#JWT#安全

五步理解 JSON Web Token(JWT)

用五步讲清 JWT 的基本原理与使用场景:它是什么、为什么需要它,以及如何安全地表示用户数据。

阅读全文 →
#翻译#JS#CSS#工具库

十一月份十个有趣的JS和CSS库

十一月精选的 10 个有趣 JS / CSS 库合集(译):每一个都值得收藏,说不定下一个项目就用得上。

阅读全文 →
#小程序#WXS

小程序之wxs

小程序 WXS 语法入门:与 JavaScript 的差异、运行环境、模块导出,以及 iOS 上的性能优势。

阅读全文 →

._you-might-not-need-redux

阅读全文 →

._you-might-not-need-derived-state

阅读全文 →

._websocket-vue-reconnection-guide

阅读全文 →

._undefined-vs-null

阅读全文 →

._react-setstate-async

阅读全文 →

._productivity-tools

阅读全文 →

._nextjs-tailwind-blog

阅读全文 →

._miniprogram-wxs

阅读全文 →

._mask-scroll-penetration

阅读全文 →

._less-first-look

阅读全文 →

._json-web-token-jwt

阅读全文 →

._javascript-strict-mode

阅读全文 →

._indexeddb-practical-guide

阅读全文 →

._fun-js-css-libraries-november

阅读全文 →

._frontend-engineering-practices

阅读全文 →

._frontend-encryption-types

阅读全文 →

._frontend-code-review-guide

阅读全文 →

._echart-in-miniprogram

阅读全文 →

._deploy-site-https

阅读全文 →

._chrome-devtools-debugging-tips

阅读全文 →

._chrome-browser-extensions

阅读全文 →

._badminton-backhand-training

阅读全文 →

._array-string-methods

阅读全文 →

._array-deduplication

阅读全文 →

._aliyun-deploy-ssh-hardening-qa

阅读全文 →
博客 · Mars MZ