Skip to content

Instantly share code, notes, and snippets.

@alexrios
Created September 18, 2018 14:49
Show Gist options
  • Save alexrios/326050c1819f4d57025895a68e8e6a50 to your computer and use it in GitHub Desktop.
Save alexrios/326050c1819f4d57025895a68e8e6a50 to your computer and use it in GitHub Desktop.
A menor versao possivel do redux
function createStore(reducer) {
let state
let listeners = []
const getState = () => state
const subscribe = (listener) => {
listeners.push(listener)
return () => {
listeners = listeners.filter((l) => l !== listener)
}
}
const dispatch = (action) => {
state = reducer(state, action)
listeners.forEach((listener) => listener())
}
return {
getState,
subscribe,
dispatch,
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment