Be the first user to complete this post

  • 0
Add to List

Redux: Implementing store from scratch

In redux, store is a very central piece which brings actions, reducers and states together. It has the following main functions and API :

  • Holds application state;
  • Allows access to state via getState();
  • Allows state to be updated via dispatch(action);
  • Registers listeners via subscribe(listener);
  • Handles unregistering of listeners via the function returned by subscribe(listener);.

Redux Store

[wpgist id="dcb86657def2bd9390a170b8a4f17092" file="store.js"]
Note: The subscribe function returns another function, which filters out the listener from the list of listeners. Hence, if you want to unsubscribe a listener then you will have to save the reference for the return value while subscribing and call the reference function. For example,

let foo = () => {...};

let unsubscribeFoo = store.subscribe(foo); // At this point foo will be called whenever the store updates

// sometime in future
unsubscribeFoo(); // After this function is executed, the foo will not be called whenever the store updates




Also Read:

  1. Use node in es6 syntax with babel transpiling
  2. Generating container components with connect utility in react redux app
  3. Passing the store down implicitly via context in a react redux app
  4. Use es6 and es6+ in eslint with babel