Flutter-数据的跨层传递

对于数据的跨层传递
方案:属性传递、InheritedWidget、Notification 和 EventBus
还有个Provider

总结

首先, InheritedWidget。对于视图层级比较深的 UI 样式,直接通过属性传值的方式会导致很多中间层增加冗余属性,而使用 InheritedWidget 可以实现子 Widget 跨层共享父 Widget 的属性。需要注意的是,InheritedWidget 中的属性在子 Widget 中只能读,如果有修改的场景,我们需要把它和 StatefulWidget 中的 State 配套使用。
然后, Notification,这种由下到上传递数据的跨层共享机制。我们可以使用 NotificationListener,在父 Widget 监听来自子 Widget 的事件。
最后, EventBus,这种无需发布者与订阅者之间存在父子关系的数据同步机制。
https://pub.dev/packages/event_bus#-readme-tab-

属性传值、InheritedWidget、Notification 与 EventBus 数据传递方式对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JkDQV1xJ-1582964880202)(file:///var/folders/m8/5bhg6xs121j8xyl7c4ws3r540000gn/T/WizNote/78dc5d18-2adb-4ca8-aac1-252e30cea7a9/index_files/5a8621a5-8e62-46f5-aa74-4c7dff4f36bf.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值