मैं उस बिंदु पर हूं जहां मैं वास्तव में अपने कोड को इस तरह से व्यवस्थित करना चाहता हूं जो इसे अधिक स्केलेबल और प्रबंधनीय बनाता है। मैं एक ढांचे का उपयोग किए बिना जावास्क्रिप्ट में एमवीसी वास्तुकला की बेहतर समझ प्राप्त करना चाहता हूं।वेनिला में एमवीसी जावास्क्रिप्ट
मॉडल:
तो यह मैं अब तक क्या समझ (कृपया कृपया कृपया मुझे सही कर अगर मैं गलत हूँ) है साइटों की एक संगठित ढांचे/वेब एप्लिकेशन सामग्री (चित्र, कॉपी, डाउनलोड करने योग्य सामग्री, आदि ...) जिसमें सामग्री के हेरफेर में भी तर्क की आवश्यकता है। इसलिए जावास्क्रिप्ट में मॉडल एक JSON ऑब्जेक्ट या एक php फ़ाइल को कॉल कर सकता है जो डेटाबेस को पुनर्प्राप्त/अपडेट करता है और मॉडल का तर्क उन कार्यों को हो सकता है जो सामग्री को पार्सिंग, रीगेक्स-आईएनजी और व्यवस्थित करने के लिए ज़िम्मेदार हैं ताकि इसे तब सौंप दिया जा सके देखने के लिए बंद?
देखें: उपयोगकर्ता इंटरफ़ेस और मॉडल के डेटा/सामग्री का दृश्य प्रतिनिधित्व। इसका एकमात्र काम सामग्री को प्रदर्शित करना और लागू होने पर उपयोगकर्ता इनपुट स्वीकार करना है?
नियंत्रक: क्या नियंत्रक केवल नौकरी मॉडल और दृश्य के बीच मध्यस्थ के रूप में कार्य करना है? उदाहरण के लिए, यदि दृश्य को डेटा की आवश्यकता है तो क्या वह नियंत्रक से पूछता है जो डेटा प्राप्त करने के लिए मॉडल पर जाता है, फिर उसे वापस देखने के लिए भेजता है? और यदि कोई उपयोगकर्ता इनपुट है तो दृश्य इसे नियंत्रक को भेजता है जो उसके बाद उस मॉडल को भेजता है जिसे तब अपडेट किया जाता है जिस पर नियंत्रक उस बिंदु को सूचित करता है कि मॉडल को तब अपडेट किया गया है?
एमवीसी मेरे लिए भ्रम का मुद्दा रहा है और अभी भी इस तथ्य के साथ संयुक्त है कि यह कहा गया है कि एमवीसी जावास्क्रिप्ट में एक प्राकृतिक प्राप्य चीज नहीं है (पट्टा पर जावा, एक्शनस्क्रिप्ट आदि जैसे नहीं है .. ।)
जावास्क्रिप्ट से एमवीसी सहायक को देखने का प्रयास करें, इसके बारे में कुछ सिद्धांत पढ़ें। फिर आप उन तरीकों को अपनी पसंद की किसी भी भाषा में लागू कर सकते हैं। – TJHeuvel
मुझे अभी तक जावास्क्रिप्ट में स्क्रैच से एमवीसी का एक शुद्ध एमवीसी कार्यान्वयन देखने को मिला है। TodoMVC में वेनिला जेएस कार्यान्वयन निश्चित रूप से सच एमवीसी नहीं है, हालांकि इसमें विभिन्न परतों का पृथक्करण है। स्वीकृत उत्तर पर मेरी टिप्पणी देखें। हेड फर्स्ट डिज़ाइन पैटर्न से चित्रण सहायता कर सकता है: http://codereview.stackexchange.com/questions/42353/is-the-vanilla-implementation-of-todomvc-really-an-mvc-app – oligofren
की कमी के कारण स्क्रैच से असली एमवीसी बॉयलरप्लेट कोड शामिल है। वेनिला टोडोएमवीसी ऐप जेएस की 900+ लाइनें है, फिर भी असली एमवीसी होने के लिए आवश्यक भागों को याद नहीं है। "भेड़" का जवाब बताता है कि यह एक बुरी चीज क्यों नहीं है;) – oligofren