0Pricing
Swift Academy · บทเรียน

@Binding: การไหลของข้อมูลสองทาง

ส่งสถานะที่เปลี่ยนแปลงได้ลงมาตามลำดับชั้นของ View ด้วย @Binding และคำนำหน้า $

@Binding: การไหลของข้อมูลสองทาง เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

ยินดีต้อนรับ

`@Binding` สร้างการเชื่อมต่อสองทางระหว่างสถานะขององค์ประกอบแม่กับมุมมองลูก ทำให้มุมมองลูกอ่านและเขียนค่าขององค์ประกอบแม่ได้โดยไม่ต้องเป็นเจ้าของค่านั้น

การสร้างการเชื่อมโยง

```swift struct Parent: View { @State private var name = "" var body: some View { ChildView(name: $name) // $ creates Binding } } struct ChildView: View { @Binding var name: String var body: some View { TextField("Name", text: $name) } } ```

คำนำหน้า $

`$name` บนคุณสมบัติ `@State` จะคืนค่า `Binding` ซึ่งเป็นการอ้างอิงไปยังพื้นที่จัดเก็บขององค์ประกอบแม่ และอนุญาตให้อ่านและเขียนค่าได้สองทาง

การเขียนค่าผ่านการเชื่อมโยง

```swift struct Toggle: View { @Binding var isOn: Bool var body: some View { Button(isOn ? "On" : "Off") { isOn.toggle() } } } ```

การเชื่อมโยงค่าคงที่สำหรับตัวอย่างก่อนดู

```swift #Preview { ChildView(isOn: .constant(true)) // non-mutable binding for preview } ```

การเชื่อมโยงกับสมาชิกของคอลเลกชัน

```swift ForEach($items) { $item in // $items is Binding<[Item]> TextField("Name", text: $item.name) } ```

สรุป @State กับ @Binding

• `@State` — *เป็นเจ้าของ* ค่าและเก็บค่าไว้ในมุมมอง • `@Binding` — *อ้างอิง* สถานะของมุมมองอื่นและไม่ได้เป็นเจ้าของค่า • การเปลี่ยนค่าผ่าน `@Binding` จะส่งต่อกลับไปยังเจ้าของ

การเชื่อมโยงที่คำนวณขึ้น

```swift let isLarge: Binding = $fontSize.map( get: { $0 > 18 }, set: { $0 ? 24 : 14 } ) ```

การเชื่อมโยงกับค่าทางเลือก

```swift if let $item = $selectedItem { DetailView(item: $item) } ``` ภาษาสวิฟต์ 5.7 ขึ้นไปรองรับการเชื่อมโยงค่าทางเลือกด้วย `if let $binding`

การเชื่อมโยงหลายค่า

```swift struct Form: View { @State private var name = "" @State private var age = 0 var body: some View { FormFields(name: $name, age: $age) } } ```

ตรวจสอบอย่างรวดเร็ว

คำนำหน้า `$` บนคุณสมบัติ `@State` จะคืนค่าอะไร

สรุป

ประเด็นสำคัญ: • `@Binding var x: T` — การอ้างอิงสำหรับอ่านและเขียน ซึ่งไม่ได้เป็นเจ้าของค่า • `$stateProperty` สร้าง `Binding` • `.constant(value)` ใช้สำหรับการเชื่อมโยงที่แก้ไขไม่ได้ในตัวอย่างก่อนดู • การเขียนค่าจากมุมมองลูกผ่าน `@Binding` จะอัปเดต `@State` ขององค์ประกอบแม่ • `ForEach($collection) { $element in }` สำหรับการวนซ้ำที่แก้ไขค่าได้ ถัดไป: @ObservableObject

คำถามที่พบบ่อย

บทเรียน “@Binding: การไหลของข้อมูลสองทาง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “@Binding: การไหลของข้อมูลสองทาง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “@Binding: การไหลของข้อมูลสองทาง”

ส่งสถานะที่เปลี่ยนแปลงได้ลงมาตามลำดับชั้นของ View ด้วย @Binding และคำนำหน้า $ คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “@Binding: การไหลของข้อมูลสองทาง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม

ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. @Binding: การไหลของข้อมูลสองทาง
  2. @ObservableObject และ @StateObject
  3. @EnvironmentObject สำหรับสถานะที่ใช้ร่วมกัน
  4. แหล่งความจริงเดียวและการไหลทางเดียว
← กลับไปที่ Swift Academy