awesome-state

Collection of state management lib

bg

State management refers to the management of the state of one or more user interface controls such as text fields, OK buttons, radio buttons, etc. in a graphical user interface. In this user interface programming technique, the state of one UI control depends on the state of other UI controls. For example, a state managed UI control such as a button will be in the enabled state when input fields have valid input values and the button will be in the disabled state when the input fields are empty or have invalid values. As applications grow, this can end up becoming one of the most complex problems in user interface development.[1]

This is especially the case when the state of any particular message or form on the page depends on factors outside of the current page, or available throughout several pages. For example, consider a user who is logged in and sees the 'welcome' message on their first visit to any page, but not on subsequent page visits. Does each page manage the state of the user being logged in? That would create too much copy pasting and duplication of code. Instead, you can use a state management pattern for handling messages (this may also include handling error messages and informative messages, along with the described welcome message) and then call this to receive a message as it becomes available.

cross framework

  • redux Predictable state container for JavaScript apps
  • mobx Simple, scalable state management.
  • akita 🚀 State Management Tailored-Made for JS Applications
  • effector The state manager ☄️
  • usm 🏖A concise & flexible state model for Redux/MobX/Vuex, etc.
  • storeon 🌩 A tiny (167 bytes) event-based Redux-like state manager for React, Preact, Angular, Vue, and Svelte
  • xsm State Management made eXtraordinarily simple and effective for Angular, React, and Vue

react

  • flux Application Architecture for Building User Interfaces
  • reflux A simple library for uni-directional dataflow application architecture with React extensions inspired by Flux
  • react-redux Official React bindings for Redux.
  • mobx-react Official React bindings for Mobx
  • concent State management tailored for react, it is simple、predictable、progressive and efficient.
  • rematch REmatch, a complete binary diffing framework that is free and strives to be open source and community driven.
  • constate React Context + State
  • unstated State so simple, it goes without saying
  • zustand 🐻 Bear necessities for state management in React
  • easy-peasy Vegetarian friendly state for React
  • react-easy-state Simple React state management. Made with ❤️ and ES6 Proxies.
  • redux-observable RxJS middleware for action side effects in Redux using "Epics"
  • react-automata A state machine abstraction for React
  • dva Lightweight front-end framework based on redux, redux-saga and react-router.
  • react-copy-write ✍️ Immutable state with a mutable API
  • unistore 🌶 350b / 650b state container with component actions for Preact & React
  • kea Production Ready State Management for React
  • undux ⚡️ Dead simple state for React. Now with Hooks support.
  • moreartyjs centralized state management for React in pure JavaScript
  • hox The next-generation state manager for React.
  • use-persisted-state A custom React Hook that provides a multi-instance, multi-tab/browser shared and persistent state.
  • marty A Javascript library for state management in React applications
  • TNG-Hooks Provides React-inspired 'hooks' like useState(..) for stand-alone functions
  • react-hooks-global-state
  • react-hooks-global-state Simple global state for React with Hooks API
  • redux-arena Bundling reducers, actions, saga and react-component when using Redux
  • dob-react React bindings for dob
  • doux Simple reactivity system with composition API.
  • react-tracked Simple and fast global state with React Context. Eliminate unnecessary re-renders without hassle.
  • icestore 🌩 Simple and friendly state for React
  • overmind Overmind - Frictionless state management
  • outstated Simple hooks-based state management for React
  • pure-store A tiny immutable store with type safety.
  • react-broadcast Reliably communicate state changes to deeply nested React elements
  • react-nano-state Fast state that can be shared across components outside of the React tree
  • react-sweet-state Shared state management solution for React
  • stamen A React state management library based on Hooks
  • rex-state The simplest state management tool for React
  • statux ⚛️ A minimal state management library for React with Hooks and immutable state
  • reworm 🍫 the simplest way to manage state
  • remx Opinionated mobx
  • vuex-redux Make Redux as simple as Vuex
  • linkstate Bind events to state. Works with Preact and React.
  • statty A tiny and unobtrusive state management library for React and Preact apps
  • freactal Clean and robust state management for React and React-like libs.
  • react-3ducks Simple state management solution for React

vue

  • vuex Centralized State Management for Vue.js.
  • mobx-vue Vue bindings for Mobx
  • vuet 允许你定义飙车过程的集中式状态管理模式
  • VueFlux ♻️ Unidirectional State Management Architecture for Swift - Inspired by Vuex and Flux
  • vue-rx 👁️ RxJS integration for Vue.js.
  • vuex-observable Consume Vuex actions as Observables using RxJS 5
  • vue-reactive-store A VueX alternative : declarative + reactive + centralized way to structure your data store. Inspired by VueX and Vue.js . Compatible with vue-devtools.
  • vuex-stores 🗄 Store objects for Vuex, a simple and more fluid API for state-management.
  • Vuex-Alt An alternative approach to Vuex helpers for accessing state, getters and actions that doesn't rely on string constants.
  • vue-entity-adapter Package to maintain entities in Vuex.

mini-programe

  • westore 微信小程序解决方案 - 1KB javascript 覆盖状态管理、跨页通讯、插件开发和云数据库开发
  • minii State management for Wechat Mini App
  • herculex Predictable state container for alipay mini-program inspired by vuex, redux, immutableJS,elm,rxjs
  • mp-store 轻量级的小程序状态管理库
  • wxMiniStore一个基于微信小程序的mini全局状态管理库
  • mobx-wxapp 在小程序中使用mobx
  • mobx-miniprogram-bindings 小程序的 MobX 绑定辅助库
  • Wepy-Redux 微信小程序wepy框架接入 Redux 状态管理
  • weapp_expressTime微信小程序之物流状态时间轴简单模板样式
  • mp-store 轻量级的小程序状态管理库
  • wxappStore 微信小程序全局状态管理,并提供Vuex的开发体验
  • wxMiniStore 一个基于微信小程序的mini全局状态管理库

angular

  • ng-redux Angular bindings for Redux.
  • redux-rx RxJS utilities for Redux.
  • ngxs 🚀 NGXS - State Management for Angular
  • mobx-angular MobX connector to Angular
  • RxEmitter RxEmitter combines the characteristics of Rxjs and eventBus
  • angular-model Simple state management with minimalist API, one way data flow, multiple model support and immutable data exposed as RxJS Observable.
  • ngx-model Angular Model. Simple state management with minimalistic API, one way data flow, multiple model support and immutable data exposed as RxJS Observable.
  • tinystate A tiny, yet powerful state management library for Angular

other

  • fish-redux An assembled flutter application framework.
  • RxAndroid Reactive Extensions for Android
  • flutter-provide A simple framework for state management in Flutter.
  • bloc A predictable state management library that helps implement the BLoC design pattern
  • mobx.dart MobX for the Dart language. Hassle-free, reactive state-management for your Dart and Flutter apps.
  • multiple-counters-flutter Flutter State Management [ setState ❖ StreamBuilder ❖ scoped_model ❖ redux ]
  • flutter-native-state Flutter plugin to help restoring state after the app process was killed
  • easy The easiest state manager for Flutter.
  • Reflow A unidirectional data flow framework for Objective-C inspired by Flux, Redux and Vue
  • rebloc A state management library for Flutter that combines aspects of Redux and BLoC.