React 状态管理还能比这更简单吗?

2025-05-24

React 状态管理还能比这更简单吗?

我是一个喜欢简单事物的人。所以,尽管 React 的状态管理库琳琅满目,但我一直想知道,绝对“最简单”的方法是什么。

经过一段时间的构思,我想我终于想到了这个。今天,我很高兴与大家分享SimpleR State。(没错,就是大写的“R”,代表 React 😂)

想象一下,只需两个简单的步骤即可实现共享状态!

步骤 1:创建实体(共享状态)和操作(更新函数)

// counter.js

import { entity } from 'simpler-state'

export const counter = entity(0)

export const reset = () => {
  counter.set(0)
}

export const increment = by => {
  counter.set(value => value + by)  
}
Enter fullscreen mode Exit fullscreen mode

步骤 2:通过 hooks 使用组件中的实体

import { counter, increment, reset } from 'counter'

const CounterView = () => {
  const count = counter.use()

  return (
    <>
      <div>{count}</div>

      <button onClick={() => increment(1)}> + </button> 
      <button onClick={reset}> Reset </button>
    </>
  )
}
Enter fullscreen mode Exit fullscreen mode

(其他组件可以以相同的方式使用共享counter。)

就这么简单!但这只是一个预告,它实际上可以做更多!

以下是该库的一些设计目标:

  • 极简 API;没有复杂的概念或样板
  • 使用普通函数来实现状态改变(包括异步)
  • 语法灵活,基本不固执己见
  • 对状态变化进行单元测试极其简单
  • 具有高度可扩展性的插件(例如持久性、日志记录、开发工具)
  • 完全支持TypeScript,类型简单
  • 专为 React 打造,并基于React Hooks构建
  • 比 context/reducer 解决方案数倍
  • 很小,只有大约 1 KB(最小化 + gzip 压缩)

如果您对这些优势感兴趣,不妨试试 SimpleR State。您可以访问simpler-state.js.org了解更多。没错,我写了完整的文档!🤓

如果您喜欢这个库,和/或它背后的简单性/概念,请在GitHub repo上给它一颗星,让我知道。😀👌

那么,告诉我,这个库还能比这更简单吗?我很乐意听听你的建议。目标是让它更接近它所宣称的“最简单”,而不是与其他库争夺“最佳”。

我在 GitHub 上开启了评论请求(此处)。非常感谢您的评论和建议。也欢迎在这里给我留言👇。

另外补充一下——我之前提到的技术react-entities已经问世一段时间了,并且已经被我们公司用于生产环境。SimpleR State 是一个演进版本,它基于相同的稳定核心,但使用了完全不同(简单得多)的 API。

文章来源:https://dev.to/arnelenero/can-react-state-management-get-any-simpler-than-this-2o90
PREV
10 个秘密 Git 命令,每周帮你节省 5 个小时以上
NEXT
面试需要了解的 10 个 JavaScript 概念