SuperAPI AI 工具集

rdc-manager

数据与分析

查看项目

更新于 10-16 07:26

技能介绍

用途:介绍如何使用 @data-client 的 Managers 处理全局副作用。Manager 是单例,类似中央数据存储的 useEffect(),通过 Controller 与 store 交互,并以 redux 中间件形式响应 action 运行。

主要能力:可实现 websocket、SSE、轮询、订阅、日志、中间件等全局副作用。用 Controller 派发动作,如 ctrl.fetch()、ctrl.fetchIfStale()、ctrl.expireAll()、ctrl.invalidate()、ctrl.invalidateAll()、ctrl.setResponse()、ctrl.set()、ctrl.setError()、ctrl.resetEntireStore()、ctrl.subscribe()、ctrl.unsubscribe()。用数据读取器读取状态:ctrl.getResponse()、ctrl.getState()、ctrl.get()、ctrl.getError()、ctrl.snapshot()。

使用方式:实现 Manager 接口,提供 middleware 与 cleanup 方法。middleware 接收 controller 并返回 next => async action => next(action) 形式。比较 action.type 时必须使用 actionTypes 成员(FETCH、SET、SET_RESPONSE、RESET、SUBSCRIBE、UNSUBSCRIBE、INVALIDATE、INVALIDATEALL、EXPIREALL),不要用字符串。动作必须显式传给 next。可通过返回 Promise.resolve() 消费订阅,阻止其他 manager 处理。在应用入口用 getDefaultManagers() 追加自定义 manager,并传入 DataProvider 的 managers 属性。

适用场景:定时更新数据、日志记录、按订阅建立/断开连接等全局副作用。

限制:资料未提供收费、价格、平台等信息。需参考 references 目录获取 Manager、Actions、Controller、LogoutManager、getDefaultManagers 等详细 API。