【问题标题】:Provider vs ViewModel提供者与 ViewModel
【发布时间】:2019-12-02 05:24:42
【问题描述】:

详细了解ProviderChangeNotifier 架构,我发现它与旧的优秀MVVM 架构非常相似,其中Widget 是视图,并通过ViewModel 获得更改通知,这是ChangeNotifier,由 ConsumerProvider 链接。

那为什么不把这称为 Flutter 的 MVVM 呢?这两种架构之间有什么实际区别吗?

【问题讨论】:

    标签: mvvm flutter flutter-provider


    【解决方案1】:

    Provider 不是State-Management 库,而是Dependency-Injection

    借助 Provider,您可以实现几乎任何类型的状态管理解决方案,它让您的工作变得更加轻松。

    你可能听说过BLoC,在 Flutter 中它是推荐的架构,现在人们通常更喜欢 BLoC(Architecture) 和 Provider(DI)。

    BLoC 架构与 MVVM 非常相似,不同之处在于 BLoC 更具响应性/现代性,也更适合 Flutter 的响应式/函数式结构。 但基本上,如果你不是events-state 机制的忠实粉丝,这可以说是相同的。所以是的,你的观察是正确的,我们通常基本使用evolved-MVVM

    【讨论】:

    • 是的,我使用 BLoC,它类似于 Android Jetpack ViewModel,但 Consumer/ChangeNotifier 让我想起了很多 C# WPF ViewModel
    【解决方案2】:

    provider 绝不是一种架构。它是一种成分。

    在使用Provider 时,绝对没有什么强迫您使用ChangeNotifier

    你可以和其他东西结合使用,包括 Mobx, BLoC, Redux, ...

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 2019-12-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2015-03-20
      相关资源
      最近更新 更多