当我们就 React 的 setState 和 Redux 的 Store 哪个好这个问题问 Redux 的作者 Dan Abramov 时, 他如此回答:

“经验原则是: 选择能够减少麻烦的方式

要回答这个问题,需要分析TendaWiFi-Flutter中是否涉及到不同组件之间的数据交互。
image.png

用户信息

用户信息需要在app中的多个widget中用到,比如登陆注册模块,个人信息模块,设备列表模块,设置向导模块。而这些模块并不是单一的父子关系,通过传统的回调函数方式传递数据十分复杂,因此需要!

当前管理的设备的信息

主页拓扑图以及高级设置各模块都需要此信息

TCP/UDP连接

各个模块都需要创建好的socket连接实例

TendaWiFi-Flutter需要用数据持久化嘛?

app中是否有需要持久化的数据呢?
当然有,每一次重新打开app都需要保持上一次的登陆状态和管理设备的信息。如果每一次进入app都能直接进入上一次用户管理的设备界面,这是极好的用户体验