1
sjhhjx0122 2023-06-13 08:26:23 +08:00
我写 ng 从来不用状态管理,都是直接用服务依赖注入的,甚至在 vue 和 react 上也这样干,ngrx 就是学的 redux 本身就是 react 的毒瘤遗产,我也很少见人用 ngrx 这个库也不是官方写的啊,我记得英雄指南里都是用服务的
|
2
zhangk23 OP @sjhhjx0122 有怨念是之前跟了一个半的 angular 项目,我给前任阿三程序员擦屁股,那俩都用的 ngrx 来做管理,要我自己从头写还好,烦的是中途改 还没注释,那大半年可劲儿和这玩意儿打交道了。不过我也觉得服务很不错啊,就该是这样的理念,有数据放 service 里头大家共享就好
|
3
maxssy 2023-06-20 18:16:09 +08:00
@sjhhjx0122 React 如何注入?
|
4
99s 2023-06-21 09:53:12 +08:00
听别人说的:越简单越容易被人代替,搞复杂点没人会,就保住了自己的位置
angluar service 这个东西挺好的。 |
5
zhangk23 OP @maxssy react 我没记错没有 angular 的自带注入,所以可能自己定义一个钩子注入状态是最优解(我没写过毕竟之前一直用的 redux ,但如果要写,肯定是 useState,然后设置初始 state 和 state ,然后传出去,别的组件调用这个钩子),百分之百比 redux 简单,而且好理解
@99s 是这样的 如果我干大项目且是全职技术老大的话,肯定怎么复杂怎么来,巴不得吃巨头的工资吃一辈子,越复杂越好,最好全世界只有我一个人看的懂我设计就行,然后写个两百页文档手底下管几个实习生/外包!但毕竟我之前外包出来的全栈技术人,螺丝刀就是,需要什么学什么,拿多少钱干多少事,我信奉技术能用前提下越简单越好,四小时火速干完份内的事儿,一个很简单的项目搞那么复杂还得我从头过一遍前人写的东西给人擦屁股,就是浪费我的生命,搞那么多花里胡哨实在蠢 |
6
sjhhjx0122 2023-06-25 15:21:32 +08:00
@maxssy 可以用通过依赖注入的库,从 react 的 context 传递下去 比如 injection-js 这种,不过可以试试 redi ,他直接可以跟 react 联动
|
7
sjhhjx0122 2023-06-25 15:29:09 +08:00
@zhangk23 react 有依赖注入只是没有 angular 这么强大,angular 并不花里胡哨,ngrx 也不是官方库,所以你的怨气应该撒给 ngrx ,或者说是 redux ,跟 angular 没关系,ng 就是最符合你理念直接写个全局服务全局共享还不需要状态管理库
|
8
zhangk23 OP @sjhhjx0122 确实奥
|
9
mxT52CRuqR6o5 2023-11-07 19:35:59 +08:00
从 react 角度讲一讲这些设计理念,前端相比后端一个很大的差别之一就是状态的复杂度( http 是一个无状态的协议),特别是碰到表单什么的状态尤其复杂,所以整出这些中心状态管理的东西。如果组件之间共享了一些状态,把这些状态放到某个中心去管理,组件和组件之间仅有组装逻辑上的关系,组件仅与中心状态有数据逻辑耦合,而组件与组件之间没有数据逻辑耦合,以此来达到解耦(当然 redux 也有不小的缺点)
至于为什么不用全局变量,是因为全局变量会阻碍 SSR (虽然你可能并不会用到 SSR ,但这些框架的官方教程不太会教你去用全局变量解决各种问题,不过你如果心里足够有数也不是不能用) |
10
zhangk23 OP @mxT52CRuqR6o5 感谢分享!处理复杂数据时候的确如此,然后 SSR 这块未曾设想过,还需要琢磨一下哈哈哈哈哈
|