Backbone.js से Marionette.js तक

हेलो, हैबर।

यह लेख इस बारे में बात करेगा कि Marionette.js में क्या है और आपकी बाइक नहीं लिखने की संभावना है।

लेख मुख्य रूप से Backbone.js और / या Marionette.js के साथ काम करने वालों के लिए है।
नए परिचितों के लिए, लेख के अंत में पहला, अवलोकन, भाग और लिंक उपयोगी होंगे।

सबसे पहले, आइए याद करें कि Backbone.js क्या है और यह किस चीज से बना है।
  1. Underscore.js - सुविधाजनक, क्रॉस-ब्राउज़र जावास्क्रिप्ट के लिए 80 से अधिक सहायक कार्य।
  2. Backbone.Events - वस्तुओं के आधार (बाइंड) घटनाओं के लिए प्लस हेल्पर फ़ंक्शन के आधार वर्ग का कार्यान्वयन।
  3. Backbone.Model - कुंजी / मूल्य विशेषताओं तक पहुंच के साथ डेटा मॉडल। यह सर्वर के साथ लोड / सिंक्रनाइज़ करने के लिए एक तंत्र है।
  4. Backbone.Collection - अंडरस्कोर.ज से 28 तरीकों के साथ मॉडल के संग्रह। मॉडल की तरह, उनके पास सर्वर के साथ एक डाउनलोड / सिंक्रनाइज़ेशन तंत्र है।
  5. Backbone.Router और Backbone.history बुनियादी राउटर और पृष्ठ इतिहास हैं। वे संयोग पथ का पता लगाने और नेविगेट करने में सक्षम हैं।
  6. Backbone.sync - jQuery.ajax का उपयोग करके REST के माध्यम से डेटा लोडिंग / सिंक्रनाइज़ेशन का कार्यान्वयन।
  7. Backbone.View - दृश्य। बॉक्स से बाहर, वह न तो खुद को प्रस्तुत कर सकता है और न ही डोम में पेड़ लगा सकता है।


भाग एक: Marionette.js


कल्पना कीजिए कि हम Backbone.js पर एक एप्लिकेशन लिख रहे हैं। नतीजतन, हम प्राप्त करते हैं:


शब्द "बात" का अर्थ आवश्यक कार्यों के विभिन्न वास्तु कार्यान्वयन हो सकता है।

पिछले सम्मेलन में, बैकबोनकॉन्फ़ ने बार-बार यह विचार किया कि बैकबोन.जेएस फ्रेमवर्क लिखने के लिए आधार (कंकाल) है। इसके अलावा, नींव काफी अच्छा है।

Marionette.js पुस्तकालयों में से एक है जो Backbone.js के सभी लचीलेपन का उपयोग करते हुए, वास्तुकला का एक स्केच बनाता है और बड़े वेब अनुप्रयोगों को लिखने के लिए आधार को लागू करता है।

Marionette.js में (चित्रों के साथ) क्या शामिल हैं:


आधार


की प्रस्तुति


प्रबंधन देखें


मॉड्यूल और अनुप्रयोग


संदेश बसें


बाकी



निष्कर्ष: अपनी खुद की रूपरेखा न लिखें, Marionette.js का उपयोग करें।

भाग दो: नियंत्रक / Plectrum


मैं दृढ़ता से आपको ब्रायन मान बैकबोनरेल के सभी 9 घंटे के स्क्रैनास्ट को देखने की सलाह देता हूं। सामग्री में बड़ी संख्या में उपयोगी टुकड़े होते हैं, जिनमें से एक नियंत्रक / मध्यस्थ के उपयोग का विस्तृत विवरण है।

मुख्य विचार: नियंत्रक / मध्यस्थ प्रत्येक दृश्य के जीवन चक्र या तार्किक रूप से संबंधित विचारों के समूह (लेआउट) को नियंत्रित करता है।
एक विस्तृत उदाहरण: हमें एक सूची प्रदर्शित करने की आवश्यकता है, "Apple" सूची होने दें।

हम एक नया Apple सूची नियंत्रक बना रहे हैं। बदले में, नियंत्रक के पास निम्न कार्य हैं:

  1. आवश्यक डेटा (संदेश प्रदाता के माध्यम से संदेश बस के माध्यम से) का अनुरोध करें;
  2. डेटा लोड करने के लिए प्रतीक्षा करें, संभवतः एक डाउनलोड स्पिनर दिखा रहा है;
  3. "ऐप्पल" सूची के मामले में, संग्रह दृश्य या समग्र दृश्य प्रदर्शित करें;
  4. प्रदर्शित दृश्य की घटनाओं को सुनें, उदाहरण के लिए, प्रत्येक सेब की रिकॉर्डिंग पर क्लिक;
  5. यदि आवश्यक हो, वैश्विक संदेश बस में घटनाओं को पुनर्निर्देशित करें;
  6. प्रस्तुति बंद करते समय, अपने आप को बंद करें;
  7. जब आप खुद को बंद करते हैं, तो घटनाओं के लिए अपने सभी सब्सक्रिप्शन (बाइंड) को बंद कर दें।

पहले पैराग्राफ के लिए विवरण

"कैसे" का तर्क डेटा प्रदाता से नियंत्रक / मध्यस्थ को हस्तांतरित डेटा की प्रतीक्षा करने के लिए हमें प्रत्येक मामले में उपयोगकर्ता इंटरफ़ेस के लिए सबसे उपयुक्त तरीके से इसे संभालने की अनुमति देता है। उदाहरण के लिए, एक मामले में हम स्पिनर को स्पिन कर सकते हैं और डेटा डिस्प्ले प्राप्त करने के बाद सब कुछ कर सकते हैं, और दूसरे मामले में, पहले खाली दृश्य प्रदर्शित करें, और फिर प्राप्त डेटा के साथ भरें।

पांचवें पैराग्राफ के लिए विवरण

ऐसा लग रहा था कि कोई सीधे इवेंट इवेंट को ग्लोबल इवेंट बस में भेज सकता है। लेकिन नियंत्रक / मध्यस्थ के रूप में परत हमें पूर्ण और प्रॉक्सी घटनाओं के लिए प्रस्तुति की घटनाओं का उपयोग करने की अनुमति देता है जो केवल पूरे आवेदन के लिए आवश्यक हैं। उदाहरण: सेब के मामले में, आप एक उदाहरण के रूप में इस सूची में "हटाएं सेब" बटन और पुष्टि संवाद का हवाला दे सकते हैं ("क्या आप वास्तव में इस सेब को हटाना चाहते हैं?"); नियंत्रक / मध्यस्थ द्वारा संसाधित इन दो घटनाओं के बाद ही, हम वैश्विक बस संदेशों को भेजते हैं कि इस तरह के सेब को हटा दिया जाता है।

निष्कर्ष: एक नियंत्रक / मध्यस्थ जो मध्यस्थ (मध्यस्थ) पैटर्न को लागू करता है, अतुल्यकालिक डेटा की एक कड़ी की भूमिका के लिए उत्कृष्ट है, विचारों और उपयोगकर्ता कार्यों का प्रतिपादन करता है।

संदर्भ और सामग्री:


Source: https://habr.com/ru/post/In207730/


All Articles