agagega
2021-04-26 01:01:12 +08:00
我对 SwiftUI 的理解,它主要做了两件事:利用 Swift 的语法做了一套声明式描述 UI 的方法;实现了根据数据改变而重新渲染 View 的一套机制。有了这两个东西,SwiftUI 在思路上和前端 Vue 、React 那些 MVVM 框架就比较像了。
所以你说的把 App 自上而下拆成各个 View 可能是开发中不那么复杂的部分。更重要的其实是处理「事件-数据-视图」的关系,也就是你说的 ViewModel 。比较小的 App 直接通过 State 、Binding 这几个表达状态的东西一把梭就行。
大一些的就得考虑架构问题了。Apple 没有一个官方的参考方案,但可以参考前端对这个问题的思考,比如像 Redux 一样把所有的状态都放到一起,然后把所有操作都抽象成 action,再用 reducer 去产生新的状态。不过这些架构的优点都是在实践中体会出来的。把握了这个思路,SwiftUI 上手写一些简单的 App 还是挺快的,就是 Apple 的文档做得不好。