Awesome
🍱 create-store
Tiny (<300B minified + gzipped) state atoms that are updated via reducers.
import createStore from "create-store";
const initialState = { count: 0 };
function reducer(state, action) {
switch (action.type) {
case "INCREMENT":
return { count: state.count + 1 };
case "DECREMENT":
return { count: state.count - 1 };
}
}
const store = createStore(reducer, initialState);
console.log(store.getState().count); // => 0
store.dispatch({ type: "INCREMENT" });
console.log(store.getState().count); // => 1
create-store
is a lightweight implementation of a Redux store without advanced concepts like middleware.
Installation
npm install --save create-store
Using With React
The best way to use create-store state atoms with React is to use useSubstate. You can find more information in the README of that library.
Contributing
Every help on this project is greatly appreciated. To get you started, here's a quick guide on how to make good and clean pull-requests:
-
Create a fork of this repository, so you can work on your own environment.
-
Install development dependencies locally:
git clone git@github.com:<your-github-name>/create-store.git cd create-store yarn install
-
Make changes using your favorite editor.
-
Commit your changes (here is a wonderful guide on how to make amazing git commits).
-
After a few seconds, a button to create a pull request should be visible inside the Pull requests section.
Future Improvements
- Add Flow and TypeScript types. This is actually very important for this library: Actions must be typed as an enum such that the type system can find out if we use the wrong type.
- Improve test harness.