Swift Academy · पाठ

साझा स्थिति के लिए @EnvironmentObject

प्रॉप-ड्रिलिंग के बिना साझा मॉडल को गहरे view पदानुक्रमों में इंजेक्ट करें।

पाठ 3, कुल 4 में से12 चरण

साझा स्थिति के लिए @EnvironmentObject, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्वागत है

`@EnvironmentObject` किसी स्पष्ट रूप से पास किए बिना पदानुक्रम के किसी भी व्यू में साझा मॉडल डालता है — यह उपयोगकर्ता प्रमाणीकरण या थीम सेटिंग जैसी पूरे ऐप में साझा स्थिति के लिए आदर्श है।

पदानुक्रम में डालना

```swift struct App: App { @StateObject var authModel = AuthModel() var body: some Scene { WindowGroup { RootView().environmentObject(authModel) } } } ```

@EnvironmentObject के साथ उपयोग

```swift struct ProfileView: View { @EnvironmentObject var auth: AuthModel var body: some View { Text("Hello, \(auth.username)!") } } // No init parameter needed — auto-injected from environment ```

अनुपलब्ध Environment Object पर क्रैश

यदि आप ऑब्जेक्ट डाले बिना `@EnvironmentObject` का उपयोग करते हैं, तो ऐप रनटाइम पर क्रैश हो जाता है: ``` Fatal error: No ObservableObject of type AuthModel found. A View.environmentObject(_:) must be attached to ancestor. ```

प्रीव्यू में EnvironmentObject

```swift #Preview { ProfileView().environmentObject(AuthModel.mock) } ```

एकाधिक Environment Objects

```swift RootView() .environmentObject(authModel) .environmentObject(cartModel) .environmentObject(themeModel) ``` प्रत्येक प्रकार की पहचान उसके प्रकार से होती है — नामों में टकराव नहीं होता।

तुलना: @EnvironmentObject बनाम @ObservedObject

• `@ObservedObject` — स्पष्ट init पैरामीटर, निर्भरताएँ स्पष्ट • `@EnvironmentObject` — कोई init पैरामीटर नहीं, अंतर्निहित रूप से डाला जाता है स्पष्टता के लिए `@ObservedObject` को प्राथमिकता दें; वास्तविक रूप से वैश्विक स्थिति के लिए `@EnvironmentObject` का उपयोग करें।

नेस्टेड व्यू में डालना

```swift View A (.environmentObject(model)) └── View B (@EnvironmentObject var model) ✓ └── View C (@EnvironmentObject var model) ✓ — inherits ```

सिस्टम मानों के लिए @Environment

इसे `@Environment` से भ्रमित न करें (इसके नाम में Object प्रत्यय नहीं है): ```swift @Environment(\.colorScheme) var scheme // system dark/light @Environment(\.locale) var locale // current locale ```

वास्तविक उपयोग का पैटर्न: AppModel

```swift @Observable class AppModel { var isLoggedIn = false var username = "" var cart: [Item] = [] } ``` आधुनिक तरीका: रूट पर एकल `@Observable` ऐप मॉडल डालें।

त्वरित जाँच

यदि आप `@EnvironmentObject` को डाले बिना उपयोग करते हैं, तो क्या होता है?

पुनरावलोकन

मुख्य बातें: • `.environmentObject(model)` पूरे उपवृक्ष में मॉडल डालता है • `@EnvironmentObject var m: ModelType` — अपने-आप डाला जाता है, किसी पैरामीटर की आवश्यकता नहीं • डालना भूलने पर = रनटाइम क्रैश • प्रीव्यू में भी हमेशा मॉडल डालें • सिस्टम मानों के लिए `@Environment(\.key)` (अलग API) अगला विषय: सत्य का एकल स्रोत।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “साझा स्थिति के लिए @EnvironmentObject” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “साझा स्थिति के लिए @EnvironmentObject” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“साझा स्थिति के लिए @EnvironmentObject” में मैं क्या सीखूँगा?

प्रॉप-ड्रिलिंग के बिना साझा मॉडल को गहरे view पदानुक्रमों में इंजेक्ट करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“साझा स्थिति के लिए @EnvironmentObject” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. @Binding: दो-तरफ़ा डेटा प्रवाह
  2. @ObservableObject और @StateObject
  3. साझा स्थिति के लिए @EnvironmentObject
  4. सत्य का एकल स्रोत और एकदिश प्रवाह
← Swift Academy पर वापस जाएँ