随笔分类 - React
摘要:在现代 React 组件开发中,优先想到 useState、useEffect、context、props drilling 这样的框架能力,而容易忽略: 浏览器原生 HTML 属性本身,就是一个强大而成熟的状态表达载体。 比如 data-* 为代表的自定义属性,在近几年被越来越多的专业组件库采用,
阅读全文
摘要:大家好!最近在个人项目里用上了 React Server Components (RSC),觉得这东西有点意思,能让应用更快、更轻。以前 React 组件全在浏览器跑,现在部分移到服务器。今天我就来聊聊 RSC,从基础说起,帮你快速上手。 什么是 React Server Components? 简
阅读全文
摘要:前言 三年前,我们还在 Reddit 上吵得不可开交: “Redux 太啰嗦!” “Zustand 太黑盒!” “Jotai 会内存泄漏!” 今天,React 19 直接把“外挂仓库”拆成了无数颗微状态胶囊(Micro-State Capsules)——随用随取,随丢随灭。 状态不再集中,而是散落在
阅读全文
摘要:背景 我们团队主要在做 C 端产品,对于 C 端应用,图片资源使用 CDN 十分重要,因此我们曾建立了一个文件上传平台:上传文件后,可以复制图片的 CDN URL 在前端项目中使用。 目前服务端不会对图片做压缩,使用前得先借助其他工具手动压缩再上传,体验很差。调研后发现,纯前端就能完成压缩且完全满足
阅读全文
摘要:为何需要通用 Action? 在 Zustand 状态管理库中,开发者常常需要为状态对象的每个字段单独编写更新函数。然而,随着状态结构的复杂化,这种方式会导致代码冗余,维护成本增加。例如: updateName: (name) => set(() => ({ name })), updateAge:
阅读全文
摘要:引言 在状态管理领域,计算属性(computed properties)是一个极其重要的概念。MobX 和 Pinia 等库都内置了计算属性功能,允许开发者声明式地定义派生状态。虽然 Zustand 本身没有直接提供 computed API,但这并不意味着我们无法实现类似的功能。 本文将介绍三种在
阅读全文
摘要:引言 在现代 React 应用开发中,状态管理一直是开发者面临的核心挑战之一。虽然 Redux 曾是主流解决方案,但其繁琐的样板代码让许多开发者望而却步。Zustand 作为一个轻量级的状态管理库,提供了更简洁的 API 和更好的 TypeScript 支持,同时还能与 React Context
阅读全文
摘要:
 ## useEffect 先理解 useEffect 有助于学习 useMemo 和 useCallback。因为
阅读全文
 ## useEffect 先理解 useEffect 有助于学习 useMemo 和 useCallback。因为
阅读全文
摘要:我的 umijs 版本 "umi": "^3.5.13" 当前版本 umi 使用了 PostCSS7,安装兼容 PostCSS7 版本的 TailwindCSS 即可: yarn add tailwindcss@npm:@tailwindcss/postcss7-compat .umirc.ts /
阅读全文
摘要:前置 在 react 中解决组件样式冲突的方案中,如果您喜欢将 css 与 js 分离,可能更习惯于 CSS-Modules;如果习惯了 Vue.js 那样的单文件组件,可能习惯于使用 styled-components 来解决这个问题。使用 CSS-Modules 从老项目迁移过来可能更容易。 安
阅读全文
摘要:前置 react-dom 提供了可在应用顶层使用的 DOM(DOM-specific)方法。 render() hydrate() unmountComponentAtNode() findDOMNode() createPortal() 你可以使用以下命令在本地启动一个 node 服务器,运行本文
阅读全文
摘要:简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux 除了和 React 一起用外,还支持其它库( jquery ... ) 它体小精悍(只有2kB,包括依赖) 由 Flux 演变而来,但受 Elm 的启发,避开了 Flux 的复杂性。 安装 稳定版 附加包 Re
阅读全文
摘要:useState 用来声明状态变量。 import React, { useState } from 'react'; // ... const [ count , setCount ] = useState(0); // ... count 声明的变量 setCount 设用来更新变量的函数 0
阅读全文

浙公网安备 33010602011771号