Skip to content

BugUpdater/simulate-redux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simulate-redux (2020.07)

Simulate Redux from simple to complex.

从零编写一个功能完整的Redux,包括combineReducers、applyMiddleware和bindActionCreators的实现等。

Demo1 simple-store

Create a simple store that can: get state/subscribe/change state.

Demo2 limit-change-store

Limit change by dispatching actions.

Demo3 multiple-reducers

Combine reducers

Demo4 init-state-by-reducer

Init state by reducer and trigger in createStore.

Demo5 middleware

Logger middleware and exception middleware.

Demo6 improved-middleware

  • Place middlewares in a seperate folder and be more extensible.
  • Use applyMiddleware to combine the array of middlewares.

Demo7 full-redux

Other improvements:

  • Unsubscribe store
  • Use simple store in middlewares
const simpleStore = { getState: store.getState };
const chain = middlewares.map(middleware => middleware(simpleStore));
  • Support to omit initState
// old
const store = createStore(reducer, {}, rewriteCreateStoreFunc);
// new
const store = createStore(reducer, rewriteCreateStoreFunc);

// change code
function craeteStore(reducer, initState, rewriteCreateStoreFunc){
    if (typeof initState === 'function'){
    rewriteCreateStoreFunc = initState;
    initState = undefined;
  }
  ...
}
  • Add replaceReducer in createStore to support lazy load of reducer.
  • Add bindActionCreators to simplify dispatching actions.

About

Simulate Redux from simple to complex.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published