redeux
Minimal unidirectional data flow utility library.
- Written in plain 'ol JavaScript so no transpile needed⚡️
- Tiny💥
- Simple api:
- store
- returns the current state
- store.register
- register any number of reducers
- store.subscribe
- subscribe a function to receive state updates
- store.unsubscribe
- unsubscribe a function from state updates
- store.dispatch
- dispatch an action
- store.register
- returns the current state
- store
Install
node
npm i redeux --save
script
<script src="redeux.umd.js"></script>
es module
import Redeux from 'https://unpkg.com/redeux?module'
Usage
reducer
this is what a reducer looks like
// Default statevar initialState = // By defualt the reducer function's name property// will be used as the key for the data atom// NOTE: You can also add the `key` property to your reducer function// i.e.: `todos.key = todos` useful for when you want to use uglify and mangle is changing function names.module { // Guard against undefined action action = action || {} // You can use whatever keys you like in your actions, // but i find a type and data works best for me var type = actiontype var data = actiondata // Guard against undefined state // by initializing with initial state state = state || initialState } // The add function will get passed the current state and the action data { // Make a copy of the array var newState = state // Change the copy newState // Return the changed copy return newState} console // { todos: [] }
Registering a reducer
var todos = var initialState = todos: 123var store = initialState// You can pass as many reducers as you want to registerstore
Dispatching an action
var store = store
Subscribing a listener
var initialState = todos: 0var store = initialStatevar todos = storestorestorestore { console // {todos[0, 1]}}
btw redeux works really well with hash-switch