软件工程专业令人惊奇的方面之一是您永远不会停止学习。你每天都会接触到不同的技术:学习它们的基本概念是我个人最喜欢的事情之一。
学习新技术最重要的技能之一是识别模式和相似性的能力。即使您不是每天都使用它,这也可以让您对新技术进行推理。
一周前,我的一位同事给我发了一篇关于 React 渲染的文章。我不是每天都使用 React,但我熟悉它的基本概念,我没有注意到它与 SwiftUI 有多么相似。在阅读这篇文章时,我惊讶地发现 React 会在Component的状态发生变化时重新渲染,而不是在其props发生变化时重新渲染。
于是,我的好奇心又来了:SwiftUI 是做什么的?它什么时候重新渲染它的组件?我创建了一个小项目来尝试理解这一点,今天我想分享我的过程和我的发现。
我采取的第一步是重现文章中介绍的相同情况。我用相同的初始组件创建了一个新的 SwiftUI 项目:
为简单起见,我将它们放在一个文件中:
struct Counter: View {
@State var count = 0
var body: some View {
VStack {
BigCountNumber(number: count)
Button("Increment", action: {
count += 1
})
}
.padding()
}
}
struct BigCountNumber: View {
let number: Int
var body: some View {
VStack {
Text("