gpt4 book ai didi

Flutter:为什么 Provider 比只有静态单例的 AppGlobal 类更好?

转载 作者:行者123 更新时间:2023-12-03 02:41:03 26 4
gpt4 key购买 nike

根据我对 flutter 包的了解,Provider , 是一种在小部件之间共享对象的方法。我知道另一种方法是创建一个类,比如 AppGlobal ,并定义各种 static整个应用程序可以使用的变量。建议Provider是这样做的更好方法,但我不明白为什么会这样。

最佳答案

这个问题的答案应该考虑不同的方面:

  • 可测试性 - 差别不大。两种情况都需要代码
    更改以替换单例本身或“提供的
    单例”
  • 代码耦合 - 也没有太大区别(见评论
    可测试性)
  • 范围 - 单例最常经历整个生命周期
    应用。对于某些人来说,管理单例很容易出错
    小部件子树。这里提供者肯定有它的优势,照顾
    创造和处置。
  • UI 更新 - 使用单例时,必须完全手动编码
    setState 会产生大量容易出错的样板代码。
    Provider 已经在幕后提供了这一点。
  • 监听器 - 在应用程序的某一部分更改状态应该
    通知该状态的所有消费者。对于单例,这必须手动构建。
    Provider 已经在幕后提供了这一点。
  • 延迟加载 - 默认情况下,值是延迟加载的,这意味着在第一次读取值而不是第一次创建提供程序时调用它们。这可以通过 lazy: false 禁用

  • 希望这能更深入地回答这个问题。

    关于Flutter:为什么 Provider 比只有静态单例的 AppGlobal 类更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60131428/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com