10

मैं बैकबोन और बैकबोन को एकीकृत करने की प्रक्रिया में हूं। मौजूदा वेब एप्लिकेशन प्रोजेक्ट में मैरियनेट। हम अभी परियोजना में सभी मौजूदा कार्यक्षमताओं को अकेले छोड़ने की योजना बना रहे हैं, लेकिन किसी भी नई कार्यक्षमता से हम बैकबोन स्ट्रक्चरिंग और मैरियनेट प्रिंसिपल का लाभ उठाएंगे। व्यवसाय के पहले क्रम में से एक HTML टेम्पलेट प्रतिपादन लाइब्रेरी के साथ-साथ इन टेम्पलेट्स के लिए डेटा बाध्यकारी समाधान पर निर्णय लेना है। पहले, हम अपने सभी templating जरूरतों और डेटा बाध्यकारी के लिए JsRender और JsViews का उपयोग कर रहे हैं, लेकिन हम अपनी नई कार्यक्षमता के लिए नए रास्ते तलाशने के इच्छुक हैं। तो मूल रूप से मैं विभिन्न समाधानों का शोध कर रहा हूं और अब चुनने के लिए कुछ सलाह या विचारों की आवश्यकता है। यहाँ मैं अब तक पर ध्यान दिया है है:बैकबोन: मॉडल-टू-टेम्पलेट और टेम्पलेट-टू-मॉडल बाइंडिंग

Backbone.StickIt:

पेशेवरों: जो मदद करता है अपने टेम्पलेट बहुत "क्लीन" रखने चिंताओं पर जुदाई की रीढ़ के विचार का पालन करने लगता है।

विपक्ष: ऐसा लगता है कि आपको बाइंडिंग को परिभाषित करने के लिए अपने विचारों में थोड़ा और कोड लिखना है। इसके अलावा, सशर्त प्रतिपादन करने की क्षमता में कमी आती है, इसलिए आपको हमेशा पूर्ण टेम्पलेट प्रस्तुत करना होगा और केवल कुछ तत्वों के प्रदर्शन को टॉगल करना होगा।

Rivets.js:

पेशेवरों: यह बहुत गन्दा किए बिना बंधन खाके में विकल्पों में थोड़ा और अधिक डेटा का प्रबंधन।

विपक्ष: इसके अलावा, सशर्त प्रतिपादन की कमी प्रतीत होती है।

Knockback/Knockout:

सकारात्मक: विशेषताओं के माध्यम से बाध्यकारी जरूरतों डेटा के सभी प्रकार संभालती है।

विपक्ष: कन्वर्टर्स के साथ टेम्पलेट को "गंदे" शुरू करना आसान है। बैकबोन मॉडल से नॉकआउट व्यू-मॉडल बनाने के लिए एक और कदम जोड़ना होगा।

JsViews:

सकारात्मक: नॉकआउट की क्षमताओं के लिए, लेकिन अलग अलग वाक्य रचना के साथ इसी तरह की। सशर्त प्रतिपादन संभालती है।

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

हम भी Backbone.ModelBinder जो बीच में कहीं है StickIt और Rivets में देखा।

क्या कोई भी उनके द्वारा किए गए किसी भी निर्णय को साझा कर सकता है और उन्होंने एक प्लगइन/लाइब्रेरी को दूसरे पर क्यों चुना? मैं अन्य सुझावों के लिए भी खुला हूं। धन्यवाद।

उत्तर

2

मैंने इन

मूंछ का उपयोग किया है।जेएस

प्रो: न केवल मूंछ समर्थन चर बाध्यकारी करता है, लेकिन यह फ़ंक्शन बाइंडिंग को भी संभाल सकता है। उदाहरण के लिए आप

<a href="{{test}}" >click me </a> 

और फिर आपके दृश्य में परीक्षण नामक एक विधि हो सकती है। यह लिंक करने के लिए रेंडरेंट असाइनिंग क्लास/आईडी को बहुत से बचाता है, और व्यू क्लास में ईवेंट को बाध्य करता है।

कॉन: मुझे इसके वाक्यविन्यास पसंद नहीं हैं।

अगला मैं रूबी पर रूबी में कॉफ़ीस्क्रिप्ट का उपयोग करता हूं, जिसमें जेएसटी इको टेम्पलेटिंग सिस्टम में निर्माण होता है। एक समर्थक है, आपके पास अलग फ़ाइलों में टेम्पलेट्स हैं। Pageload पर वे डोम में एक वैश्विक चर से बंधे हैं। ये कम किए गए हैं और कुछ छद्म स्क्रिप्ट टेम्पलेट टैग के बाद बेहतर तरीका है। एक और समर्थक है, अगर आप लिखते हैं और आपके जैसे लूप के लिए रूबी में करते हैं। नकारात्मकता यह है कि वे रेजर टैग का उपयोग करते हैं और सर्वरसाइड कोड (अनुवाद की तरह) के साथ आसान मिश्रण की अनुमति नहीं देते हैं।

अन्य पुस्तकालय संभोग इंजन को अंडरस्कोर है। बहुत सरल, लेकिन काफी शक्तिशाली। Proside, आप पहले से ही यह उपलब्ध है (अंडरस्कोर रीढ़ की हड्डी के लिए आवश्यक है)। डाउनसाइड है, आप (डिफ़ॉल्ट रूप से) बाहरी फ़ाइल से टेम्पलेट लोड नहीं कर सकते हैं। मैंने इसे सर्वरसाइड कोड (requ_once, आंशिक प्रस्तुत करने) का उपयोग कर हल कर लिया है। यदि आप require.js का उपयोग करते हैं, तो पाठ प्लगइन (http://requirejs.org/docs/download.html#text) के साथ एक साथ आप टेम्पलेट को निर्भरता के रूप में लोड कर सकते हैं।

+1

मैंने अंडरस्कोर की जांच की (मजाकिया है कि मैंने इसे नहीं माना था जैसा कि आपने उल्लेख किया है)। मुझे लगा कि हमें "स्पेगेटी" टेम्पलेट्स के साथ एक ही समस्या हो सकती है। मुख्य चिंता यह है कि हमारे पास टेम्पलेट्स पर काम कर रहे कई डेवलपर्स हैं और हमने HTML में बहुत अधिक तर्क और टेम्पलेट सिंटैक्स को इंटरटविना शुरू कर दिया है। तो हमें उस आदत को त्यागने के लिए मजबूर करने के लिए हमने बैकबोन के साथ जाना चुना। स्टिकिट। ऐसा लगता है कि टेम्पलेट के बाहर बाइंडिंग बनाने में उपयोग करने में कुछ समय लगेगा लेकिन उम्मीद है कि हम अपने एचटीएमएल की "सफाई" से लाभ उठाएंगे। आपके सहयोग के लिए धन्यवाद। –