我们将用不到四十行代码写一个属于自己的redux,只模拟部分业务行为,没考虑性能上的问题哟,下面来看看怎么样用那么简洁的代码实现的吧。
在此之前我们需要了解createStore、combineReducers两个函数的作用。
1.createStore
创建一个 Redux store 来以存放应用中所有的 state,应用中应有且仅有一个 store。其中暴露 dispatch, subscribe, getState, replaceReducer 方法。
我们的redux只暴露 {dispatch, subscribe, getState} 这三个方法
2.combineReducers
辅助函数的作用是,把一个由多个不同 reducer 函数作为 value 的 object,合并成一个最终的 reducer 函数,然后就可以对这个 reducer 调用 createStore。
接下来主要实现这两个函数,就能构成我们的redux啦。话不多说,上码。
createStore函数接收一个reducer, 用于搜集当前用户定义默认的state, 至于为什么初始化要定义action的type 为’@dmh-redux’ 是确保他的switch能走上default 从而让我们搜集到用户默认的state。剩下的我也不多逼逼,各位请看代码注释
实现了简介的createStore,我们的工程已经完成了大半啦,接下来只需要实现combineReducers 整合并更新 用户更新的state到我们的state来。接下来看实现。
到此为止我们的小redux就完工了,是不是很简单,接下来我们写个小型的demo实验一下我们写的redux管不管用。
创建actions-types
创建actions
创建reducers
引入我们的redux 并配置store
界面配置
实现效果:
完全某门体,简单吧,就几十行代码就实现了redux的基本功能,如果你觉得这篇文章对你有用的话,请给个赞赞哦
需要源码的小伙伴戳这里源码传送门,进去直接colne就行啦。