乐趣区

关于redux:TS-Redux-的一些感想

很久没写文章了,始终在奉献开源框架和一些库,也不善于写文章,看我已往的文章,全都是干瘪瘪的,没有半点废话。这次算是写个软文吧,实话实说,也没期待会有多少人看。


链接先放着:https://github.com/redux-model/redux-model


记得 2016 年刚守业失败进去找工作,找了一家教育类的互联网公司(当初也是)。这家公司用的是 es6 + react + redux + webpack 的前端架构。而我守业期间,还在写 es3 + jquery,钻研各种构造函数 / 继承 / 原型 等一些比拟底层的货色。所以进了新公司,算是解放了吧,有种从 2g 网络迁徙到 4g 网络的感觉,仙气飘飘。

那时候的 redux,哇哦,先写上 3 个 actionType 类型(申请须要 3 个状态),再写一个 action 和一个 reducer,reducer 里写上 3 个 case,别离对应 3 个 actionType。如果 Reducer 数据比较复杂,那就是各种 Object.assign 了。所以在写了两个月之后,俨然发现我是不是在始终写模板文件啊?感觉每次都是似曾相识?但也没啥方法,抽也没法抽,毕竟对 redux 理解不够深刻。我共事的做法是写一个代码片段,每次须要的时候主动生成,而后修修改改完事。

断断续续写了 2 年左右原生的 Redux,直到 2018 年,Typescript 曾经有点纸包不住火了,我也被点燃了,所以尝试了好几次,总想把我的项目转到 ts 去,于是网上各种搜寻最佳实际案例,每种都尝试过来,各种崎岖。断断续续地,终于在 2018 年底给安顿上了!

写了第一版的 Ts + React + Redux,还算称心,总算都有类型了,数据能够精准追踪。当初是 2019 年,也快 30 岁了,你晓得的,人老了,就写不动了,须要正当地偷懒,须要准时上班

心里其实早有疙瘩,这 Redux 模板是时候给治一治了。于是有了第一版的 Redux-Model,目标很明确,干掉 actionType,把 action 和 reducer 整合在一起,不再写 3 个文件。所以第一版本的模型,分的很细,一个模型只蕴含一个 action,当咱们有多个模型须要作用到同一个 reducer 时,reducer 须要附在其中一个模型里。

现在,Redux-Model 曾经升到了 8.0 了,框架早已稳定下来,一个模型能够写无数个 action 和一个 reducer,数据变动也高深莫测。所以我最后的那个 TS 我的项目,至多大规模重构了 5 次的模型,每次都是几百个模型文件变更。真正地稳固应该是在 6.0 的时候,因为这个版本解决了一个类型主动反推导方面的大难题,这个问题至多花了我 3 个月的上班时间去冥思和尝试才胜利。那时候,公司里有 3 个团队曾经曾经在用我的模型框架(包含 TS 也是我在公司里推广的,当初所有团队都曾经承受 TS 了),想让他们降级,就必须一个一个帮忙升,还真是有点不好意思了。

付出总是有回报的,当初在去采访那几个团队,对框架的评估是 完满,这不也是我所谋求的吗?

框架虽好,但没有大厂背景,没有集体光环,想推广起来几乎和做梦一样 —- 想的美。推广过一段时间,大部分是在群里,不过换来的都是冷言冷语,什么 dva 不香吗?mobx 不香吗? 这些框架难道我没尝试过吗,就你晓得香?都是给 JS 用户设计的,对 TS 不太敌对,至多还没达到我的要求,所以我才要写这么一个框架,为 TS 量身定制的 Redux 框架。七夕那天,我在一个聊了挺久的群发了一个框架链接(加群大半年,总共没发超过 5 次),当场就被群主骂了,我没法承受,因为他感觉我推广这个是为了找到更好的工作?这种 羞辱开源精力 的事,我没法承受,退群了。预先群主还要再私发我一条微信:无利不起早?? 我没有回复,没必要了,不与君子辩论。

不是每个人都为找工作而写代码。趣味是个好货色,高考完结,他人都在网吧打游戏,我在书店背了几段 html 脚本去网吧运行,给小伙伴看成果。在共事眼里,我就是那种聊到代码就两眼放光的人。而开源,是为了欠缺生态,让大家有更好的抉择。当然了,某种程度也是想证实本人能力 ok,码痴不都这样吗?

感兴趣的 TS 铁粉,举荐应用。JS 用户不举荐应用,因为是 TS 定制的,但欢送 star,让更多的人晓得这个库,毕竟我太缺光环了。

好不好用,您去看看 Readme,而后 demo 运行看看就晓得什么叫 手中无 TS,心中有 TS。我不去吹,因为自信。

https://github.com/redux-model/redux-model

退出移动版