前端开发

前端开发

Zustand 完全指南

Zustand 是 React 生态中一个轻量、无样板的状态管理库,基于 hooks,不依赖 Context Provider。 使用 create 函数定义 store,接收一个返回状态和操作的工厂函数: 通过选择器(selector)订阅 store 的特定字段,避免无关字段变化导致的重渲染: Zustand v4+ 推荐将泛型写在 create<T>() 上: 将 store 状态持久化到 localStorage 或其他存储: persist 配置项: 配合 immer 中间件,可以使用直接修改 state 的写法(内部仍为不可变更新): 默认的

By yellowdog

前端开发

React 完全指南

相关文档:TypeScript完全指南(/typescript-wan-quan-zhi-nan/) TanStack Query 完全指南(/tanstack-query-wan-quan-zhi-nan/) TanStack Router 完全指南(/tanstack-router-wan-quan-zhi-nan/) React 是 Meta 开发的用于构建用户界面的 JavaScript 库,核心思想是声明式(描述 UI 应该是什么样子,而不是如何操作 DOM)和组件化(将 UI 拆分为可复用的独立部分)。 JSX 是 JavaScript 的语

By yellowdog

前端开发

Next.js 完全指南

Next.js 14+ 是基于 React 的全栈框架,App Router 是其核心架构,内置 React Server Components、流式渲染、Server Actions 等能力。 相关文档:React完全指南(/react-wan-quan-zhi-nan/) | TypeScript完全指南(/typescript-wan-quan-zhi-nan/) 默认情况下 app/ 下的所有组件都是 Server Components,在服务端渲染后发送 HTML 给客户端,不包含客户端 JavaScript bundle。 在文件顶部添加 '

By yellowdog

前端开发

JS / MJS / TS 文件区别与最佳实践

最后更新:2026-03-05 JavaScript 生态中有三种主要文件扩展名,它们的核心区别体现在两个维度:模块系统和类型系统。 Node.js 最初的模块系统(2009年),同步加载,至今仍大量存在于旧项目和 npm 包中。 CJS 特点 ES2015(ES6)引入的官方标准模块系统,现为前端和 Node.js 的推荐方式。 ESM 特点 .js 的模块系统由 package.json 中的 type 字段决定: 同一项目中混用两种格式 .mjs 无论 package.json 如何配置,始终强制使用 ESM。 何时需要 .mjs 1. 在 "ty

By yellowdog

前端开发

CSS 动画完全指南

CSS 动画体系由三个部分构成:transition(过渡)、@keyframes + animation(关键帧动画)、transform(变换)。三者经常配合使用。 transition 用于在 CSS 属性值发生变化时产生平滑过渡效果。 transition 是以下四个子属性的简写: transition 需要状态变化才能触发,常见触发方式: @keyframes 定义动画序列,animation 属性将其应用到元素上。与 transition 的区别在于:动画可以自动播放、循环、有更复杂的中间状态。 animation 是以下子属性的简写: fi

By yellowdog

前端开发

Axios 完全指南

Axios 是前端最流行的 HTTP 请求库,基于 Promise,同时支持浏览器和 Node.js。 项目中应创建实例而非直接使用 axios,便于统一配置: 拦截器是 Axios 的核心功能,用于统一处理 Token 注入、错误处理、Loading 状态等。 浏览器在发送 FormData 时会自动设置 Content-Type: multipart/form-data; boundary=...,手动设置会破坏 boundary 参数导致后端解析失败: 创建 Axios 实例而非直接用全局 axios:全局 axios 的配置修改影响所有请求,用

By yellowdog