SwiftUI等价视图优化



我将按照本文中的步骤,通过自定义diffing来提高SwiftUI的性能。现在,我只是在==:中返回true

struct MyView: View, Equatable {

@ObservedObject var model: DataModel

static func == (lhs: Self, rhs: Self) -> Bool {
return true
}
var body: some View { ... lots of stuff ... }
}

我正在使用.equatable()MyView封装在使用它的EquatableView中。

然而,在SwiftUI工具中,每当DataModel发生变化时,我仍然可以看到整个视图的重建。调试器确认调用了body。CCD_ 8也被称为。

我的理解是,如果==在困难时返回true,则不应调用body。这是正确的吗?

我该如何对此进行进一步调查?

尝试使视图符合Equatable,而不存在任何依赖项,如@ObservedObject。它应该具有简单的属性。

最新更新