Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
तर्क वास्तुकला11 मिनट पढ़ें·ExodeUI टीम द्वारा

स्टेट मशीन यूआई: नियतात्मक, बग-मुक्त इंटरफेस का निर्माण

जानें कि कैसे विज़ुअल स्टेट मशीनें असंभव यूआई स्थितियों को खत्म करती हैं, जटिल इंटरैक्टिव घटकों को सरल बनाती हैं, और React में नियतात्मक, बग-मुक्त इंटरफ़ेस बनाती हैं।

प्रत्यक्ष सारांश एवं परिभाषा

कोर टेकअवे

यूआई राज्य मशीन एक गणितीय मॉडल है जो उन सभी वैध राज्यों का वर्णन करता है जो एक इंटरफ़ेस घटक पर कब्जा कर सकता है, और उपयोगकर्ता घटनाओं या सिस्टम स्थितियों द्वारा ट्रिगर किए गए उन राज्यों के बीच स्पष्ट संक्रमण का वर्णन करता है। राज्य मशीनें "असंभव स्थिति को असंभव" बनाकर यूआई बग की पूरी श्रेणियों को खत्म कर देती हैं - यदि आपकी राज्य मशीन उस संयोजन को प्रतिबंधित करती है तो आपका लोडिंग स्पिनर और सफलता चेकमार्क दोनों एक साथ दिखाई नहीं दे सकते हैं।

समस्या राज्य मशीनें हल करती हैं

अधिकांश यूआई बग उन घटकों से उत्पन्न होते हैं जो तार्किक रूप से असंभव स्थितियों में प्रवेश कर सकते हैं। एक क्लासिक उदाहरण: एक फॉर्म सबमिशन बटन जिसमें कोई स्पष्ट राज्य मॉडल नहीं है, एक साथ दो अलग-अलग बूलियन झंडे से "लोडिंग" स्थिति और "अक्षम" स्थिति में हो सकता है। एक राज्य मशीन यह आवश्यक करके इसे रोकती है कि घटक हमेशा किसी भी समय बिल्कुल एक अच्छी तरह से परिभाषित स्थिति में हो।

  • "बूलियन फ़्लैग हेल" - isLoading, isDisabled, isError, isSuccess सभी परस्पर विरोधी हैं
  • दौड़ की स्थितियाँ जहाँ तेज़ उपयोगकर्ता एक साथ कई अवस्थाओं को ट्रिगर करते हैं
  • संक्रमण बग जहां एनिमेशन गलत मध्यवर्ती स्थिति से शुरू होते हैं
  • कोड समीक्षा में एन × एन ध्वज संयोजनों को ट्रैक करने से डेवलपर संज्ञानात्मक भार

कोर स्टेट मशीन अवधारणाएँ

राज्य मशीनों में राज्यों का एक सीमित सेट, घटनाओं की एक शब्दावली होती है जो संक्रमण को ट्रिगर कर सकती है, और उन स्थितियों की रक्षा करती है जो यह निर्धारित करती हैं कि संक्रमण की अनुमति है या नहीं।

राज्य अमेरिका

प्रत्येक राज्य घटक की एक विशिष्ट स्थिति का प्रतिनिधित्व करता है। डेटा-फ़ेचिंग घटक के लिए उदाहरण: निष्क्रिय, लोडिंग, सफलता, त्रुटि, ताज़ा करना।

घटनाएँ/परिवर्तन

घटनाएँ राज्य परिवर्तन को ट्रिगर करती हैं। "SUBMIT" एक फॉर्म को निष्क्रिय से लोडिंग में परिवर्तित करता है। "सफलता" लोडिंग से सफलता की ओर परिवर्तित होती है। "त्रुटि" लोडिंग से त्रुटि में परिवर्तित हो जाती है।

गार्ड

ऐसी स्थितियाँ जो आग में परिवर्तन के लिए सत्य होनी चाहिए। एक "SUBMIT" ईवेंट केवल निष्क्रिय → लोडिंग ट्रांज़िशन को ट्रिगर कर सकता है यदि फॉर्म सत्यापन गार्ड पास हो जाता है।

प्रसंग/विस्तारित अवस्था

सहायक डेटा जो मशीन वर्तमान स्थिति नाम के साथ (उपयोगकर्ता इनपुट मान, त्रुटि संदेश, लोड किया गया डेटा) ले जाती है।

ExodeUI में राज्य मशीनें

ExodeUI एक विज़ुअल नोड-ग्राफ़ स्टेट मशीन संपादक प्रदान करता है। आप राज्यों को वृत्तों के रूप में बनाते हैं, उन्हें घटनाओं का प्रतिनिधित्व करने वाले लेबल वाले तीरों से जोड़ते हैं, और प्रत्येक राज्य में स्प्रिंग एनिमेशन और दृश्य संपत्ति परिवर्तन संलग्न करते हैं। मशीन .exode फ़ाइल में सहेजी गई है: React में आप इसे ExodeUICanvas के साथ लोड करते हैं और इसे इनपुट के माध्यम से चलाते हैं, और स्विफ्ट में ExodeUIController के माध्यम से चलाते हैं।

उत्पादन कार्यान्वयन स्निपेट

इंटरएक्टिव घटक कार्यान्वयन
import { ExodeUICanvas } from 'exodeui';

// Springs, states and timing live in the .exode file (designed in the
// editor). Your code passes inputs in and hears events back.
export function AuthFlow() {
  return (
    <ExodeUICanvas
      src="/auth_flow.bexode"
      onTrigger={(name) => console.log('ExodeUI event:', name)}
    />
  );
}

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

संबंधित मार्गदर्शिकाएँ एवं उदाहरण

इंटरैक्टिव UI एक बार डिज़ाइन करें। वही फ़ाइल शिप करें।

ExodeUI में स्टेट, स्प्रिंग फ़िज़िक्स और लॉजिक विज़ुअली बनाएं, और वही फ़ाइल React, SwiftUI, Flutter आदि में चलाएं। मुफ़्त में शुरू करें।

मुफ्त में प्रयास करें