ModelView を作成することで
「ロジック部分を外出し」
して View の見通しを良くすることができます。
同時に @State も外部クラスに任せますか。
@Observable final class StateHolder {
var text = ""
}
var stateHolder = StateHolder()
TextField("text", text: Binding(
get: { stateHolder.text },
set: { newValue in stateHolder.text = newValue })
)
var stateHolder = StateHolder()
@Bindable var sh = stateHolder
TextField("text", text: $sh.text)
複雑なデータ処理ロジック部分も置いてしまうと、
実質の今どきの ModelView となりますね。
基本、ModelView は View に対して 1:1 なことを忘れないでください。
👉 【SwiftUI】@State と 単方向データフロー
👉 【SwiftUI】ModelView は 単なる StateHolder なのか ? - ModelView の役割