You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
hallo, 我看了 alova 以后有一些关于请求工具扩展的idea想跟作者还有社区各位讨论一下
摘要
请求工具扩展哪些扩展能力
因为我自己也写有请求工具的扩展库 (跟 alova 类似, 但只是在axios上面包装了一层扩展实现的), 我也总结了一份请求工具可以扩展的能力, 如下供参考:
navigator.sendBeacon
方法的封装, 实现页面离开时的埋点数据提交, 但这个需要后端支持● hooks api (这部分放到store层可能会更加合理一些, 因为主体上是一些业务操作, 而非通信交互)
○ 缓存 & SWR (存在缓存数据时, 优先展示缓存, 然后等请求完成后更新数据)
○ reactive & watch api (监听到数据变化, 自动触发请求交互, 本质上这部分是响应式的内容)
○ 屏幕聚焦重新请求
○ 轮询
○ orm
○ navigator.sendBeacon | 仅发送(用于埋点类请求)
○ 静默提交 (保存草稿类需求, 事件触发+延时更新方式)
○ (store) 持久化以及 IndexedDB
聊聊我的看法, 我比较认可作者对于 axios 的理解, axios 仅关注请求过程的实现. 请求之外的内容与axios无关. (fetch同理). 在我的理解里面, 前端(客户端) 与 外部通信, 应该都归纳到通信层, 这里面仅处理通信相关事项. 所以, 对于alova 里面设计的一些关于业务侧的扩展, 我不是特别认可. 通信层这块就应该只做通信这件事情 (处理请求的发送, 响应数据的处理, 还有一些请求过程的调度)。 所以, 上面的文档上面, 将一部分在请求工具内扩展的能力给剥离出来, 希望可以放到 Store 中去实现.
关于请求工具扩展的实现方式
首先, 关于请求层扩展功能的实现方式上, 我认为主要是2种方式:
这里我现在比较迷茫, 主要现在有几点考虑的内容
,. 当然了, 以我们团队目前的业务体量来说(b端后台类), 暂时不太在乎代码多这么一点~大概就是这个样子, 有时间的话, 一块聊聊, 讨论下想法~
参考
Beta Was this translation helpful? Give feedback.
All reactions