【问题标题】:Difference Between Inherited Widget and BLoC?继承的小部件和 BLoC 之间的区别?
【发布时间】:2023-03-03 05:44:17
【问题描述】:

我正在搜索很多关于 Inherited Widget 和 Bloc 状态管理之间的区别

我发现 Inherited Widget 是不可变的,但 Bloc 不是
我很了解可变和不可变的概念,但我只是想问一下

为什么继承的小部件是不可变的,它和 Bloc 有什么区别?

【问题讨论】:

    标签: flutter dart bloc state-management


    【解决方案1】:

    Bloc 和inheritedWidget 是非常不同的东西。

    Bloc 是将事件作为输入的组件,对该事件做出反应并通过流产生状态。然后,小部件可以侦听此事件流并在新的数据可用时重建。 Bloc 独立于监听它或插入事件的小部件。

    Inherited Widget 只是将一条数据提供给他所有的孩子。您可以通过 buildContext 访问这些数据。您也可以通知继承的 Widget 其数据已更改,这将导致重建其下的所有小部件。

    【讨论】:

    • 好的,但是我有 2 个问题 1-如果继承的小部件的子子项在继承重建导致数据更改时确实依赖于继承的小部件的数据。 .这个非独立数据的孩子也会重建吗?
    • 第二个问题,那么提供者和继承的小部件有什么区别?
    • 1,据我所知,继承的小部件将重建整个树。 2、Provider只是继承的widget的一个包装器,使用起来更方便。
    • 那么提供程序中除了继承的小部件还有什么附加功能?
    • 你可以查看他们的 pub.dev 包。 pub.dev/packages/provider 它通过继承的小部件提供的所有信息都在那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 2016-07-30
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多