redux
文章平均质量分 62
业火之理
这个作者很懒,什么都没留下…
展开
-
【redux】@reduxjs/tookit快速上手
前言最近兴起使用redux tookit,赶紧学一下。@reduxjs/tookit主要是为了解决redux样板代码太多。学习此篇请熟练使用redux,否则可能看不懂。基础使用首先,每个reducer有自己的作用域namespace,然后由combinedReducer集合成完整的reducer 。每个小reducer叫slice。使用create-react-app创建项目首先需要制作store,删除app.tsx中无用代码。configureStore创建store由原原创 2021-08-14 20:47:54 · 1210 阅读 · 2 评论 -
【react】僵尸children与陈旧props问题
前言以前我文章草稿箱里一直躺着篇还没整完的这问题,结果我自己一直没整明白呢,bug倒是给官方修好了。这个bug来源于react-redux,这个库还是很有名的,当时发现bug时我的水平要是比现在还高说不定还能拿个contributor。确实这个问题过于复杂了,会涉及很多关于react调度方面的知识。僵尸children与陈旧Props在react-redux官网里,就有介绍这个bug的,另外还有人写了个长文分析:https://kaihao.dev/posts/Stale-props-and-原创 2021-06-21 22:05:08 · 365 阅读 · 2 评论 -
【React】如何用优雅的方法写connect?
前言我在使用taro脚手架时,选择react+redux+ts模板时,会拉到一个写着装饰器connect的模板,事实上用该模板在那页会看到@connect那里完全报错,并没有很好的解决这个问题,那么如何优雅的写connect呢?对此我查阅了些资料。万能ANY我们先讨论如何才能不报错,最简单的写法当然是利用any了。方案1装饰器后使用any解决:@(connect(mapStateToProps,mapDispatchToProps) as any)方案2利用require进来原创 2021-04-24 20:47:40 · 706 阅读 · 0 评论 -
【React】facebook最新状态管理库Recoil
前言我感觉这个recoil还是挺有前途的,因为redux实际有些不太好的地方,我草稿箱里还有篇讨论redux僵尸children与陈旧props的文章没整理出来。一个库出来我们先学会去使用他,再去搞原理什么的。这玩意有官方光环,必然不是那种随便写写就不维护了或者只是个玩具的东西。它这个库应该是解决redux祖先传来导致更新问题,同时也解决僵尸children与陈旧props的问题,也就是异步刷新取值。本来我也想自己写个类似的东西,既然有官方的就懒得写了。https://recoiljs.org/d原创 2020-11-16 03:00:31 · 646 阅读 · 1 评论 -
【typescript】redux-thunk中间件派发函数导致connect类型报错解决方案
场景复现由于使用redux-thunk,所以action是允许派发函数的。但是写个action函数后做成mapDispatchToProps传给组件后,connect检测类型产生报错,报错如下:function Profile(props: React.PropsWithChildren<RouteComponentProps<{}, StaticContext, Histor...原创 2020-02-21 08:54:18 · 2262 阅读 · 4 评论 -
【dva】dva使用与实现(七)
前言本篇通过学习dva-immer来实现_handleAction钩子和onError钩子dva-immer先安装看用法:cnpm i dva-immer -S顺便说一下,dva目前npmjs下的是2.41,2.5和2.6都是beta版本,去发布网址查看。dva-immer版本没对上的话安装可能提示需要的dva版本不对。不过没关系,这个不影响。我们在reducer里常常会这...原创 2020-02-01 13:58:47 · 4987 阅读 · 0 评论 -
【dva】dva使用与实现(六)
前言接上篇,这次是extraEnhancersextraEnhancersextraEnhancers其实相当于外部中间件,我们通过学习一个持久化插件来学习它。前面我们持久化是利用onStateChange钩子当状态发生变更就写入localStorage,而取出数据使用initialState传入。有个插件叫redux-persist可以实现持久化。先安装,然后看如何使用:c...原创 2020-01-31 00:42:37 · 2877 阅读 · 0 评论 -
【dva】dva使用与实现(五)
前言接上篇,这篇实现onReducer钩子。利用onReducer实现redux-undo记得前面实现了个钩子叫extraReducers,extra顾名思义是额外的reducer,自己添加的新的处理逻辑。而这个onReducer是增强reducer,类似于reducer中间件的感觉。并不是增加额外的reducer。先看一个插件叫redux-undo。这个插件可以让状态有时间旅行的功...原创 2020-01-29 21:30:05 · 2255 阅读 · 0 评论 -
【dva】dva使用与实现(四)
上一篇说的dynamic,这一篇实现onAction和onStateChage。原创 2020-01-28 20:12:17 · 1464 阅读 · 5 评论 -
【dva】dva使用与实现(三)
前言第一篇是基本应用与初步实现,第二篇是dva-loading实现,顺便实现了2个钩子。这篇讲dynamic。dynamicdynamic可以解决组件动态加载问题先看使用:import dynamic from 'dva/dynamic'const DynamicPage = dynamic({ app, models: () => [import('....原创 2020-01-22 09:34:24 · 10135 阅读 · 4 评论 -
【dva】dva使用与实现(二)
前言很多东西看起来复杂,实际弄一遍感觉简单,主要还是自己懒。接上篇dva-loading这个是一个全局性质的loading状态变化。一般我们写个组件变化之类的都会在父组件上定义个状态,然后满足状态条件就渲染特定的东西。这个loading把这些变成全局可用。不需要每次都写了。实际是我们在派发一个异步动作前后,这个插件会派发它自己的action,从而更改loading状态。工作模式...原创 2020-01-19 23:43:50 · 847 阅读 · 1 评论 -
【redux】redux-saga学习笔记
前言写这玩意差点让我的惰性发挥到极致,不知道从哪里写好,搞得我都不想写。但是只能逼着自己一步步写才能进步。。。redux-saga是什么redux-saga本质上来说是redux的中间件,这里从上篇redux文章可以发现,redux的中间件是通过applyMiddleware实现的,这个函数本质是通过compose来组合一个复杂函数,改写store.dispatch。reducer是...原创 2020-01-15 09:43:26 · 247 阅读 · 0 评论 -
【redux】理解并实现redux
前言redux各种地方已经说的差不多了,本篇从头到尾再梳理下。原创 2020-01-08 18:54:41 · 302 阅读 · 0 评论