项目作者: arnelenero

项目描述 :
The simplest app state management for React
高级语言: JavaScript
项目地址: git://github.com/arnelenero/simpler-state.git
创建时间: 2021-03-07T11:17:31Z
项目社区:https://github.com/arnelenero/simpler-state

开源协议:MIT License

下载


" class="reference-link">SimpleR State

npm
build
coverage
license

SimpleR State is an ultra-lightweight library that provides the simplest state management for React.

  • Minimalist API; no complicated concepts or boilerplate
  • Use plain functions to update state (including async)
  • Largely unopinionated with flexible syntax
  • Extremely simple to unit test state logic
  • Highly extensible with plug-ins (e.g. persistence, dev tools)
  • Full TypeScript support with uncomplicated types
  • Made specifically for React, and built on React Hooks
  • Fully supports React 18 Concurrent Mode
  • Multiple times faster than context/reducer solution
  • It’s tiny, just around 1 KB (minified + gzipped)

Get all these benefits with one dependency install:

  1. npm install simpler-state

Two Easy Steps!

Step 1: Create an entity (shared state) and actions (updater functions)

  1. // counter.js
  2. import { entity } from 'simpler-state'
  3. export const counter = entity(0)
  4. export const reset = () => {
  5. counter.set(0)
  6. }
  7. export const increment = by => {
  8. counter.set(value => value + by)
  9. // --OR--> counter.set(counter.get() + by)
  10. }

Step 2: Use the entity in your components with hooks

  1. import { counter, increment, reset } from 'counter'
  2. const CounterView = () => {
  3. const count = counter.use()
  4. // --OR--> const count = useEntity(counter)
  5. return (
  6. <>
  7. <div>{count}</div>
  8. <button onClick={() => increment(1)}> + </button>
  9. <button onClick={reset}> Reset </button>
  10. </>
  11. )
  12. }

It’s that simple! But the library can do a lot more, so check out the docs website.

Documentation

Learn more about what you can do with SimpleR State at simpler-state.js.org.

Feedback

If you like this library, the concept, and its simplicity, please give it a star ⭐️ on the GitHub repo to let me know. 😀

The RFC (Request For Comments) has ended, but please feel free to open an issue on GitHub for any concerns/questions/suggestions.

Prior Art

This library is an evolution of the already production-proven react-entities that I also wrote. It shares the same stable core, but with a very different API.