2012-02-08 13 views
34

में नियंत्रक मैं बैकबोन.जेएस के लिए नया हूं। मैं प्रलेखन के माध्यम से चला गया है। मेरा प्रश्न है जहां नियंत्रक अवधारणा तस्वीर में आती है? दूसरे शब्दों में, Backbone.js में नियंत्रक क्या है?बैकबोन.जेएस

मैंने सुना है कि राउटर नियंत्रक है। यदि हां, तो इसे नियंत्रक के रूप में क्यों माना जाता है? क्या हम राउटर के बिना सरल बुनियादी ऐप्स भी विकसित कर सकते हैं? उस मामले में नियंत्रक क्या होगा?

उत्तर

39

चीजों को थोड़ा सा साफ़ करने के लिए। राउटर नियंत्रक नहीं है, यह क्लाइंट-साइड रूट मैप को परिभाषित करने का एक तरीका है (रेल के रूट.आरबी के समान)। यह क्लाइंट-साइड पृष्ठों को कुछ क्रियाओं/हैंडलरों पर रूट करने में मदद करता है। और यह एक नियंत्रक के काम से अलग है जो मॉडल और दृश्यों के बीच थोड़ा सा ऑर्केस्टेशन प्रदान करना है। और वास्तव में बैकबोन का उपयोग करके ऐसा करने के एक से अधिक तरीके हैं। Backbone's documentation से हवाला देते हुए: मॉडल और दृश्य के बीच

संदर्भ कई तरीके से संभाला जा सकता। कुछ लोगों को प्रत्यक्ष पॉइंटर्स होना पसंद है, जहां विचार मॉडल (model.view और view.model) के साथ 1: 1 से मेल खाते हैं। अन्य इंटरमीडिएट "नियंत्रक" ऑब्जेक्ट्स पसंद करते हैं जो दृश्यों के निर्माण और संगठन को पदानुक्रम में व्यवस्थित करते हैं। अन्य अभी भी घटनाबद्ध दृष्टिकोण पसंद करते हैं, और हमेशा विधियों को कॉल करने के बजाय घटनाओं को आग लगाना। इन सभी शैलियों अच्छी तरह से काम करते हैं।

यह इसे पूरा करने के लिए तीन अलग-अलग दृष्टिकोण लाता है। पहला एक बहुत सरल है जो मॉडल ऑब्जेक्ट को देखने के लिए एक संपत्ति के रूप में शामिल करना है।

दूसरा प्रस्ताव तीसरे घटक सहित प्रस्तावित करता है जो ऑर्केस्ट्रेशन की भूमिका निभाता है। मेरा मानना ​​है कि यह काफी बड़े और जटिल अनुप्रयोगों में सहायक हो सकता है। इसके लिए मैं आपको Chaplin पर देखने के लिए प्रोत्साहित करता हूं, बैकबोन.जेएस का उपयोग करके नमूना अनुप्रयोग आर्किटेक्चर। लोगों ने चीज़ों को अलग करने में एक महान काम किया है और वास्तुकला में नियंत्रक की अवधारणा भी पेश की है।

अंतिम दृष्टिकोण इन कार्यों को संभालने के लिए क्रियाओं और मध्यस्थों के लिए चिह्नित करने के लिए घटनाओं का उपयोग करने का सुझाव दे रहा है। इसके लिए मैं आपको मध्यस्थ को देखने और प्रकाशित/जावास्क्रिप्ट पैटर्न की सदस्यता लेने के लिए प्रोत्साहित करता हूं।

7

यह अधिक कैसे उदाहरण के लिए आईओएस कोको टच रूपरेखा काम करता है के समान है, तो आप एक बैकएंड MVC, रीढ़ की हड्डी टीम खुद भी कभी नहीं अपनी वेबसाइट भ्रम लोगों से बचने के लिए पर MVC का उल्लेख है की तरह इसके बारे में सोचते नहीं करना चाहिए अक्सर जब बैकएंड MVCs से आ रही है । रीढ़ की हड्डी में दृश्य आईओएस में एक व्यू कंट्रोलर/ऐप कंट्रोलर कहा जाता है और आमतौर पर आपका मुख्य ऐप कंट्रोलर एक ऐसा दृश्य होगा जो आपके एप्लिकेशन के लिए मुख्य रैपर सेट करता है, जो आमतौर पर आप अपने मुख्य ऐप लॉजिक के लिए वैश्विक पब/उप सिस्टम और नियंत्रक के रूप में भी उपयोग करेंगे ।

राउटर बिल्कुल यही कहता है - यह मार्गों को पैराम के सेट में परिवर्तित करता है और उन्हें पता लगाता है कि उनके साथ क्या करना है, लोड करने के लिए क्या सबव्यू इत्यादि। (या यदि आवेदन कम परिष्कृत है तो यह लोड हो सकता है/सीधे राउटर स्तर से विचारों को बदलें) - इसे नियंत्रक कहा जाता था लेकिन इस भ्रम को दूर करने के लिए इसका नाम बदलकर (0.5 मुझे विश्वास है?) में बदल दिया गया था।

कम से कम यह हमारा दृष्टिकोण है - यदि आपने जंगली में कई ट्यूटोरियल्स की जांच की है तो आपने शायद देखा होगा कि जब बैकबोन की बात आती है तो वहां कई डेवलपर्स हैं। और यह बैकबोन के बारे में सुंदर है! :)

11

पर एमवी * Addy Osmani`s लेख क्लाइंट पर बाहर की जाँच करें:

http://addyosmani.com/blog/understanding-mvc-and-mvp-for-javascript-and-backbone-developers/

लेख से:

रीढ़ में, एक के शेयरों के साथ एक नियंत्रक की जिम्मेदारी दोनों बैकबोन। व्यू और बैकबोन। राउटर।

और

इस संबंध में, क्या सरकारी दस्तावेज में या ब्लॉग पोस्ट में उल्लेख किया जा सकता है के विपरीत, रीढ़ न वास्तव में एक MVC/MVP है और न ही MVVM रूपरेखा है।

+4

हाय, कृपया उत्तर में सबसे प्रासंगिक सामग्री को उद्धृत करें ... –

2

आमतौर पर मैं अपने स्वयं के नियंत्रक बना देता हूं, और राउटर को यह करने की अनुमति देता है (मार्गों को पकड़ना, और नियंत्रक कार्रवाई की तरफ इशारा करना)। ये नियंत्रक घर बनाते हैं, बस उन पर विधियों के साथ जावास्क्रिप्ट ऑब्जेक्ट्स। वे राउटर से अनुरोध लेते हैं, सही डेटा एकत्र करते हैं (संग्रह, मॉडल ...) और आवश्यक दृश्य लेते हैं, उन्हें गठबंधन करते हैं और डेटा को दृश्य में पास करते हैं।

वहां से इसकी रीढ़ की हड्डी पर फिर से।

हालांकि हाल ही में मैं backboneMVC नामक एक तृतीय पक्ष रीढ़ की हड्डी प्लगइन आया था। इसे डॉक्यूमेंटेशन पढ़ा है, लेकिन अभी तक इसे खुद से आजमाने की कोशिश नहीं की है।

इसका उद्देश्य अपने राउटर को लेना और अपने नियंत्रकों और कार्यों के आधार पर मार्ग बनाना है जो आप इसके साथ परिभाषित करते हैं।

उस लाइब्रेरी पर एक नज़र डालें, हालांकि मैं कुछ भी वादा नहीं कर सकता क्योंकि मैंने अभी तक इसके साथ कुछ नहीं बनाया है।

संबंधित मुद्दे