如何降低Flutter包Widgetbook中的状态管理相关依赖项?
可选方案补充
- 方案1:放宽依赖版本约束,零代码改造成本
你可以将bloc和flutter_bloc的依赖版本区间调整到尽可能宽泛的范围,覆盖近2年的全部正式版本即可适配绝大多数用户的项目依赖。如果确实存在用户使用超出范围的旧版本,你可以在文档中说明支持用户通过dependency_overrides自行指定依赖版本,只要没有核心API的破坏性变更即可正常运行,该方案你几乎不需要修改现有代码,工作量最小。 - 方案2:基于Flutter原生能力实现极简状态管理,彻底消除第三方依赖
不需要完整封装类似provider的全量能力,仅针对你项目实际用到的状态管理场景,直接用SDK自带的ValueNotifier/ChangeNotifier做状态容器,搭配十几行代码的InheritedNotifier子类实现状态传递即可满足需求,总代码量通常不超过100行,投入成本极低,完全算不上重复造轮子,就能彻底移除两个外部依赖。 - 方案3:拆分逻辑为可选子包
你可以将状态管理相关的逻辑从核心包中抽离,拆分为独立的可选子包:核心包widgetbook仅保留无状态的核心逻辑,额外提供widgetbook_bloc子包封装基于bloc的状态实现。用户如果自身项目使用bloc可以直接引入子包,不需要bloc的用户也可以仅依赖核心包自行适配轻量状态方案,你也可以额外提供一个无第三方依赖的极简状态实现子包供用户选择,整体维护成本增量很低。
内容的提问来源于stack exchange,提问作者Jens
相关产品推荐
相关产品推荐

