Die*_*sel 8 reactjs swift swiftui
SwiftUI 文档很难找出每个渲染中实际发生的事情/它们发生的时间/导致它们的原因(或者我不知道在哪里看!)
我试图避免构建一个单独的类来执行逻辑并从我的观点中引用它,我只是不明白逻辑的去向,官方教程也没有太多涉及。我正在尝试构建一个像 React 这样的基于组件的系统,其中孩子是独立的并且不必依赖辅助类。
需要明确的是,我认为答案1.
如下。
这是我没有得到的。
在反应中,我可以说:
const [someStateVariable, setSomeStateVariable] = useState("")
const dependsOnStateVariable = someStateVariable ? 0 : 1;
Run Code Online (Sandbox Code Playgroud)
但在 SwiftUI 中我不能这样做:
@State var someStateVariable: String = ""
var dependsOnSomeStateVariable = someStateVariable ? 0 : 1
Run Code Online (Sandbox Code Playgroud)
使用传入的道具(初始化变量)执行逻辑也是如此。作为反应,我可以用这些道具做事。在 Swift 中,我不能。
所有这些逻辑都必须进入init
吗?我想通过阅读有意义的结构文档,我只想确保我正确理解它。
关于差异算法和生命周期事件的文档在哪里?什么触发渲染?什么时候init
跑?在每次渲染(即传入的属性更改或状态更改)或第一次出现时(我猜测在每次渲染上,因为 onAppear 存在)。
我如何应对副作用?看起来有点复杂。是否有 useEffect 等价物?只有在更改某些状态或输入变量时才能运行的代码?
您可以创建dependsOnSomeStateVariable
一个计算属性。
var dependsOnSomeStateVariable: Int {
someStateVariable ? 0 : 1
}
Run Code Online (Sandbox Code Playgroud)
据我所知,确切的View
生命周期没有记录(但其中一些已经被逆向工程)
对于观察到的对象 ( @ObservedObject
),您可以侦听已发布的更改(objectWillChange
,通常与 结合使用DispatchQueue.main.async
)。
归档时间: |
|
查看次数: |
404 次 |
最近记录: |