Swift Academy · पाठ

सत्य का एकल स्रोत और एकदिश प्रवाह

एकमात्र आधिकारिक स्थिति मॉडल के साथ SwiftUI ऐप डिज़ाइन करें।

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

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

स्वागत है

एकदिशीय डेटा प्रवाह का अर्थ है कि स्थिति व्यू ट्री में नीचे की ओर प्रवाहित होती है और घटनाएँ ऊपर की ओर जाती हैं। सत्य का एकमात्र प्रामाणिक स्रोत असंगतियों को समाप्त करता है।

सिद्धांत

``` State → View → Event → State mutation → View re-renders ``` व्यू, स्थिति के शुद्ध फ़ंक्शन होते हैं। वे यह तय नहीं करते कि स्थिति क्या होनी चाहिए — वे केवल उसे प्रदर्शित करते हैं और घटनाएँ उत्पन्न करते हैं।

मॉडल-आधारित UI

```swift struct AppState { var count = 0; var filter: Filter = .all } struct AppView: View { @State var state = AppState() var body: some View { CounterView(state: state, onIncrement: { state.count += 1 }) } } ```

डुप्लिकेट स्थिति से बचना

```swift // ❌ Duplicate state — can drift out of sync: @State var isLoading = false @ObservedObject var viewModel: ViewModel // also has isLoading // ✓ Single source: @ObservedObject var viewModel: ViewModel // owns all state ```

क्रिया/घटना पैटर्न

```swift enum CounterAction { case increment, decrement, reset } func reduce(state: inout AppState, action: CounterAction) { switch action { case .increment: state.count += 1 case .decrement: state.count -= 1 case .reset: state.count = 0 } } ```

TCA (कंपोज़ेबल आर्किटेक्चर)

कंपोज़ेबल आर्किटेक्चर (ओपन-सोर्स) इस पैटर्न को Swift में रिड्यूसर, प्रभाव और स्टोर के साथ औपचारिक रूप देता है — यह React के Redux जैसा है।

द्विदिशीय टकराव से बचना

```swift // ✓ Clear ownership: parent owns, child observes: struct Parent: View { @State private var text = "" var body: some View { Child(text: $text) } } struct Child: View { @Binding var text: String var body: some View { TextField("", text: $text) } } ```

परिवर्तनों को ऊपर पहुँचाना

घटनाओं को ऊपर की ओर पहुँचाने के लिए क्लोज़र (कॉलबैक) का उपयोग करें: ```swift struct Child: View { var onDelete: () -> Void var body: some View { Button("Delete", action: onDelete) } } ```

एकदिशीय कोड का परीक्षण

शुद्ध स्थिति और शुद्ध रिड्यूसर का परीक्षण करना बहुत आसान होता है: ```swift var state = AppState() reduce(state: &state, action: .increment) XCTAssertEqual(state.count, 1) ```

लाभ

• पूर्वानुमेय: एक जैसी स्थिति → एक जैसा UI • डिबग करना आसान: हर क्रिया और स्थिति परिवर्तन को लॉग करें • परीक्षण योग्य: तर्क के परीक्षणों के लिए UI आवश्यक नहीं • टाइम-ट्रैवल डिबगिंग: स्थिति के इतिहास को फिर से चलाएँ

त्वरित जाँच

एकदिशीय डेटा प्रवाह में स्थिति में बदलाव किस कारण से होता है?

पुनरावलोकन

मुख्य बातें: • स्थिति नीचे की ओर प्रवाहित होती है; घटनाएँ ऊपर की ओर जाती हैं • सत्य का एक स्रोत — डुप्लिकेट स्थिति नहीं • परीक्षण योग्य बदलाव के तर्क के लिए क्रियाओं और रिड्यूसर का उपयोग करें • कॉलबैक, चाइल्ड से पैरेंट तक घटनाएँ पहुँचाते हैं • शुद्ध स्थिति + रिड्यूसर = आसान यूनिट परीक्षण पाठ्यक्रम पूरा हुआ! अगला: कम्बाइन फ़्रेमवर्क।
शुरुआत निःशुल्क

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

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

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

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

क्या “सत्य का एकल स्रोत और एकदिश प्रवाह” पाठ निःशुल्क है?

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

“सत्य का एकल स्रोत और एकदिश प्रवाह” में मैं क्या सीखूँगा?

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

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

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

“सत्य का एकल स्रोत और एकदिश प्रवाह” पाठ पूरा करने में कितना समय लगता है?

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

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

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

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

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