Swift Academy · درس

‏@State: الحالة المحلية القابلة للتعديل في العروض

استخدموا @State لدفع تحديثات واجهة المستخدم من حالة العرض الخاصة.

الدرس 2 من 412 خطوة

‏@State: الحالة المحلية القابلة للتعديل في العروض درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

مرحبًا بكم

إن `@State` هو أبسط أداة لإدارة الحالة في SwiftUI. فهو يخزن قيمة قابلة للتغيير داخل العرض، ويؤدي إلى إعادة العرض كلما تغيرت هذه القيمة.

أساسيات @State

```swift struct Counter: View { @State private var count = 0 var body: some View { Button("Count: \(count)") { count += 1 } } } ```

خاصية خاصة وفقًا للاتفاقية

ضع خصائص `@State` على أنها `private` — فهي تفاصيل تنفيذ خاصة بالعرض وليست جزءًا من واجهته.

تخزين الحالة

تدير SwiftUI مساحة التخزين الداعمة لـ `@State` بشكل منفصل عن البنية. وعلى الرغم من إعادة إنشاء بنية العرض عند كل عملية عرض، تظل قيمة الحالة محفوظة.

استخدام @State مع السلاسل النصية

```swift struct NameInput: View { @State private var name = "" var body: some View { TextField("Enter name", text: $name) Text("Hello, \(name)!") } } ```

استخدام @State مع القيم المنطقية

```swift struct ToggleDemo: View { @State private var isOn = false var body: some View { Toggle("Enable", isOn: $isOn) if isOn { Text("Enabled!") } } } ```

تحفيز إعادة العرض

يؤدي أي تغيير في `@State` إلى استدعاء SwiftUI لـ `body` مرة أخرى. وتقارن آلية العرض في SwiftUI النتيجة بكفاءة، ولا تحدّث سوى الأجزاء المتغيرة من واجهة المستخدم.

@State للقيم المعقدة

```swift struct Item: Identifiable { let id = UUID(); var text: String } struct ListView: View { @State private var items: [Item] = [] ... } ```

قيود @State

• محلية فقط — لا يمكن مشاركتها بين العروض من دون `@Binding` • مناسبة للأنواع البدائية والهياكل الصغيرة • للحالات المشتركة أو المعقدة، استخدم `@StateObject` / `@ObservableObject`

‏@State مقابل @StateObject

• `@State` — نوع قيمة، يملكه العرض، ويُستخدم للقيم البدائية • `@StateObject` — نوع مرجعي، يملكه العرض، ويُستخدم لنماذج ObservableObject

تحقق سريع

ما الذي يؤدي إلى إعادة عرض العرض عند استخدام `@State`؟

خلاصة

أهم النقاط: • تخزن `@State` حالة محلية قابلة للتغيير يملكها العرض • استخدم `private` — فهي تفاصيل تنفيذ • التغييرات تؤدي إلى إعادة عرض تلقائية • تحافظ SwiftUI على الحالة عبر عمليات إعادة تقييم `body` • استخدم `@Binding` لمشاركة الحالة مع العروض الفرعية التالي: معدِّلات العرض.
البدء مجانًا

تعلم Swift مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
122
الدروس
409

الأسئلة الشائعة

هل درس «‏@State: الحالة المحلية القابلة للتعديل في العروض» مجاني؟

نعم — نص درس «‏@State: الحالة المحلية القابلة للتعديل في العروض» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «‏@State: الحالة المحلية القابلة للتعديل في العروض»؟

استخدموا @State لدفع تحديثات واجهة المستخدم من حالة العرض الخاصة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «‏@State: الحالة المحلية القابلة للتعديل في العروض»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. بروتوكول View وخصيصة Body
  2. ‏@State: الحالة المحلية القابلة للتعديل في العروض
  3. معدِّلات العرض: التسلسل والمعدِّلات المخصّصة
  4. المعاينات وPreview Provider
← العودة إلى Swift Academy