---
# System prepended metadata

title: SwiftUI基礎

---

[返回目錄](https://hackmd.io/78LEM4nRQ_uB8zOu1muVWQ)


# SwiftUI基礎

## 新的 PropertyWrapper
- **@State** : 在該view內部使用, 如果傳遞到下個View會是值複製。無法用於子view更新。

- **@Binding** : 在該view內部使用，但如果傳遞到下個View會是引用複製。
 
- **@EnvironmentObject** :可以把某個ObservableObject 注入當前View到其他子層級中去，這個view的子層級，就可以使用EnvironmentObject獲得綁定的值。

- **@ObservedObject**：跨越view的層級做狀態共享。( ObservableObject : 協議, 要求實現類型是class。以及實現objectWillChange，透過這個屬性，來廣播通知訂閱者)

## 舉例
### @Binding
![](https://i.imgur.com/PCizFvY.png)

### @Published
![](https://i.imgur.com/ozB13jn.png)


## 其他資源
[dismiss view](https://www.hackingwithswift.com/quick-start/swiftui/how-to-make-a-view-dismiss-itself)
