教你40行代码写一个小型的redux

我们将用不到四十行代码写一个属于自己的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。剩下的我也不多逼逼,各位请看代码注释

image.png

实现了简介的createStore,我们的工程已经完成了大半啦,接下来只需要实现combineReducers 整合并更新 用户更新的state到我们的state来。接下来看实现。

image.png

到此为止我们的小redux就完工了,是不是很简单,接下来我们写个小型的demo实验一下我们写的redux管不管用。

创建actions-types

image.png

创建actions

image.png

创建reducers

image.png

引入我们的redux 并配置store

image.png

image.png

界面配置

image.png

image.png

实现效果:

image.png

完全某门体,简单吧,就几十行代码就实现了redux的基本功能,如果你觉得这篇文章对你有用的话,请给个赞赞哦

需要源码的小伙伴戳这里源码传送门,进去直接colne就行啦。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享