现在的位置: 首页 > 综合 > 正文

移动开发状态管理的原理是什么

2019年11月18日 综合 ⁄ 共 463字 ⁄ 字号 评论关闭

  scope_model 、flutter_redux、fish_redux 、甚至还有有 dva_flutter 等等,可以看出状态管理在 flutter 中和前端十分相近。

  这里简单说说 scope_model ,它只有一个文件,但是很巧妙,它利用的就是 AnimationBuilder的特性。

  如下图是使用代码,在前面我们知道,状态管理使用的是 InheritedWidget 实现共享的,而当我们对 Model 进行数据改变时,通过调用 notifyListeners 通知页面更新了。

  这里的原理是什么呢?

  其实 scope_model 内部利用了 AnimationBuilder ,而 Model 实现了 Listenable 接口。

  当 Model 设置给了 AnimationBuilder 时, AnimationBuilder 会执行 addListener添加监听,而监听方法里会执行 setState。

  所以我们改变 set 方法时调用 notifyListeners 就触发了 setState 去更新了,这样体现出了前面说的 FLutter 常见的开发模式。

抱歉!评论已关闭.