10

मुझे पता है कि यह विषय व्यक्तिपरक बनने की संभावना है, इसलिए यह मेरे विशेष वेब एप्लिकेशन के बारे में नहीं है जिस पर मैं काम कर रहा हूं।मुझे जावास्क्रिप्ट में एमवीसी फ्रेमवर्क का उपयोग कब करना चाहिए?

जावास्क्रिप्ट के लिए, मैंने Backbone.js जैसे एमवीसी पुस्तकालयों के साथ काम नहीं किया है, लेकिन मुझे तर्क और विचारों को decoupling में लाभ दिखाई देता है। दूसरी तरफ, यह ढांचा सीखने और आवेदन करने के लिए आवेदन को अनुकूलित करने के लिए समय के लायक नहीं हो सकता है। इसके अलावा, जावास्क्रिप्ट में सभी विचारों को संभालने से एसईओ बहुत कठिन हो जाता है, मुझे लगता है।

तो मुझे यह तय करना चाहिए कि क्या बैकबोन.जेएस या वेब अनुप्रयोग की अवधारणा को देखते हुए समान फ्रेमवर्क का उपयोग करना समझ में आता है? निर्णय पर निर्भर करता है क्या?

प्रश्न को और अधिक उद्देश्य बनाने में कोई मदद स्वागत है।

+0

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

+0

यह जावास्क्रिप्ट वेब अनुप्रयोगों के लिए [मॉडल] (http://backbonejs.org/#Model) और [विचार] (http://backbonejs.org/#View) प्रदान करता है। आप सही हैं कि एक ढांचा कम है और एक टूलसेट है। लेकिन मैंने पूरी तरह से इसमें काम नहीं किया है। यहां [बैकबोन.जेएस और पारंपरिक एमवीसी] (http://backbonejs.org/#FAQ-mvc) के बारे में एक लेख है। – danijar

+2

मैं पहली बार आश्चर्यचकित था जब पहली बार मुझे पता चला कि एमवीसी जावास्क्रिप्ट में भी लागू किया जा सकता है .. गठबंधन, अंडरस्कोर, रीढ़ की हड्डी कुछ उदाहरण है ... लेकिन इसका उपयोग कब करना मेरे लिए एक बड़ा प्रश्न चिह्न है ... इसके बारे में एक अच्छी व्याख्या से कई लोगों की मदद मिलेगी। प्रश्न के लिए + 1 –

उत्तर

7

वहाँ कई ग्राहक पक्ष जावास्क्रिप्ट एमवीसी (या एमवी *) ढांचे हैं। अधिकांश में एमवीसी क्या है और यह आपके वेब एप्लिकेशन के साथ कैसे काम करना चाहिए इसके बारे में एक अलग विचार है।

यदि आपको अपने क्लाइंट साइड जावास्क्रिप्ट में जटिलता का प्रबंधन करना मुश्किल हो रहा है तो आपको एक एमवी * फ्रेमवर्क पर विचार करना चाहिए। यदि आपके पास एक टीम है जो अत्यधिक गतिशील सिंगल पेज एप्लिकेशन (एसपीए) बनाती है जो बैकएंड के साथ असीमित संचार करता है तो आप इसे विचार करना चाहेंगे। अन्यथा बहुत गन्दा जावास्क्रिप्ट कोड के साथ समाप्त करना आसान है।

एक एमवी * ढांचा एक या निम्न तरीकों में से अधिक में मदद मिलेगी:

  • को परिभाषित कैसे कोड संरचित किया जाना चाहिए द्वारा। ढांचे की राय के आधार पर यह विभिन्न डिग्री के लिए किया जाता है। उदाहरण के लिए रीढ़ की हड्डी खुद को एक ढांचे के बजाय पुस्तकालय मानती है और इस प्रकार मॉडल को एचटीएमएल बाध्य करके उपयोगकर्ता
  • पर निर्णय लेने के अधिक निर्णय छोड़ देता है। अपने डेटा को बदलता है तो अगर पेज स्वचालित रूप से अपडेट किया जाएगा (और इसके विपरीत)
  • ऐसे URL के इतिहास (एकल पृष्ठ एप्लिकेशन के लिए) और मान्यता
1

जैसा कि आप जानते MVC संरचना backbone.js का उपयोग कर underscore.js और अन्य समान पुस्तकालयों मुख्य रूप से एक इकाई ऐसी है कि संस्थाओं को विभिन्न प्रयोजनों के MVC संरचना आसान के लिए बनाए रखा है इस्तेमाल किया जा सकता में संपत्ति के रूप में प्रत्येक प्रपत्र क्षेत्र पर ध्यान केंद्रित कर के साथ द्वारा जावास्क्रिप्ट में शामिल किया जा सकता हेरफेर जावास्क्रिप्ट ये संरचना बाध्यकारी घटना, डोम हेरफेर, क्रमबद्धता के लिए अच्छा है, में आदि

यह चुनने के लिए एप्लिकेशन के उद्देश्य पर निर्भर करता है जो संरचना उपयुक्त है कि क्या जावास्क्रिप्ट के लिए अपने MVC या MVVM संरचना। एमवीवीएम संरचना को angular.js या knockoutjs या घटक देखने के लिए गतिशील बाध्यकारी के लिए अन्य पुस्तकालयों के माध्यम से जावास्क्रिप्ट में शामिल किया जा सकता है जावास्क्रिप्ट का उपयोग किया जा सकता है
एमवीवीएम आर्किटेक्चर फिर से लोड या अजाक्स के बिना फॉर्म फ़ील्ड बाध्यकारी बनाए रखने के लिए उपयोगी होगा। जेएस में वास्तुकला और मैंने केवल कुछ ही बताया है।

उदाहरण के लिए

: Serialize form inputs to JSON using Backbone.js

इस उदाहरण में प्रपत्र मूल्यों मॉडल के रूप में प्राप्त किए गए हैं और फिर इसे चालाकी से किया जा सकता है व्यापार तर्क जोड़ सकते हैं और धारावाहिक जा सकता है या घटना बंधन और प्रिंट या किसी बात कर सकते हैं

7

मैं इसे अपनी परियोजना पर निर्भर करता है लगता है के रूप में उपयोगी सुविधाओं उपलब्ध कराने के द्वारा।यहां एक चेकलिस्ट है जो यह तय करने में आपकी सहायता कर सकती है कि आपको फ्रंटेंड एमवी * फ्रेमवर्क का उपयोग करना चाहिए या नहीं। ajax अनुरोध के

  • बहुत सारे अपने कार्यक्षमता की
  • कई बैकेंड पूरा पृष्ठ पुनः लोड की आवश्यकता नहीं है। एक टिप्पणी, पेजिनेशन या अनंत स्क्रॉल जोड़ने की तरह।
  • आपके पास बैकएंड पर मॉडल/आरईएसटी एपीआई है। आप सामने की तरफ एक ही संरचना को दोहराना/उपयोग कर सकते हैं।
  • आप विभिन्न पृष्ठों में तर्क/डोम हेरफेर फ़ंक्शन साझा कर रहे हैं।

यदि मुझे कोई और अंक मिल जाए तो मैं और अधिक जोड़ूंगा। यही वह है जो मैं अभी सोच सकता हूं और यह पूरी सूची नहीं है। किसी भी सुझाव का स्वागत है।

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