SwiftUI属性装饰器(@State)
2021-06-08 本文已影响0人
fanren
一、简介
使用@State修饰某个属性后,SwiftUI将会把该属性存储到一个特殊的内存区域内,并且这个区域和View struct是隔离的;
当@State修饰的属性的值发生变化后,SwiftUI会根据该属性重新绘制视图;
二、demo
struct ContentView: View {
@State var content = "测试文本"
var body: some View {
VStack(alignment: .leading) {
Text(self.content)
TextField("Placeholder", text: $content).background(Color.gray)
}
.padding()
}
}
展示结果
三、不同端对比
-
Flutter
SwiftUI的@State与Flutter中的StatefulWidget类似;都是通过修改State中的属性,来更新视图;
不同的是实现方式不同; -
Vue
SwiftUI的@State与Vue中data很相似;
SwiftUI中,@State修饰的属性值发生变化后,会更新视图;
Vue中,data中的属性值发生变化后,引用该属性的元素,也会发生变化;