jQuery พอดีกับเฟรมเวิร์กเช่น JavaScriptMVC, BackboneJS, SproutCore และ Knockout ที่ไหน


14

ฉันใช้JQueryอย่างมีความสุขในช่วง 2 ปีที่ผ่านมาและค่อนข้างประสบความสำเร็จในการสร้างฟังก์ชั่นที่ยอดเยี่ยมบางอย่างกับมัน ... ดังนั้นฉันจึงสบายใจกับมันมาก ฉันยังเชื่อว่าอนาคตของเว็บจะดำเนินต่อไปในเส้นทางของลูกค้าในปัจจุบัน

อย่างไรก็ตาม ...

ความท้าทายต่อไปดูเหมือนจะเกิดขึ้นในรูปแบบของเฟรมเวิร์กคอนโทรลเลอร์ต่างๆ: KnockoutJS , BackboneJS , SproutCore , JavaScriptMVC (รายการดำเนินต่อไป)

นอกจากนี้ยังมีเครื่องมือAMD Loaderที่ยอดเยี่ยมสำหรับการใช้งานเช่นRequireJSหรือLabJSเป็นต้นอย่างไรก็ตามตอนนี้ jQuery มีdefineและthenความสามารถในการอบ

มันยากขึ้นเรื่อย ๆ ในการติดตามมันทั้งหมด ...

และตอนนี้งานของฉันดูเหมือนจะประเมิน / ตัดสินใจเกี่ยวกับทิศทางกลยุทธ์สำหรับการใช้รูปแบบของ MVC หรือ MVVM ฝั่งไคลเอ็นต์ ... แต่ฉันมีคำถามมากมาย

  • JQuery ไม่ตรงกับกรอบควบคุมต่างๆที่กล่าวถึงข้างต้น?
  • คือJQuery ใช้ควบคู่แต่ละหรือทำบางส่วนของพวกเขามีของตัวเอง ' JQuery -styled' รุ่นอบมีอะไรบ้าง?
  • เป็นเครื่องมือเช่นRequireJS ยังจำเป็นถ้าคุณใช้หนึ่งในกรอบการควบคุมต่างๆที่กล่าวถึงข้างต้น?
  • ที่ไม่defineและthenความสามารถในการอบลงJQuery ตอนนี้แทนที่เอเอ็มดีพับดังกล่าวข้างต้น?
  • อันไหนที่ดูเหมือนโมดูลาร์มากที่สุด? (ดูหมายเหตุด้านล่าง)

หมายเหตุ:
สิ่งหนึ่งที่ฉันไม่ต้องการในกรอบอนาคตคือความต้องการที่จะรับฟังก์ชั่นมากมายที่ฉันไม่ได้ใช้ ความหมายฉันอยากจะใช้กรอบที่เป็นโมดูลอย่างแท้จริง ตัวอย่างเช่นในการใช้ jQuery UI คุณจะต้องใช้ไลบรารีหลักอื่น ๆ ที่คุณอาจไม่ได้ใช้

ฉันจะทำการทดลองกับแต่ละคน แต่ข้อเสนอแนะจริงบางอย่างจะดีมาก ฉันเคยเห็นคำถามที่ 'คล้ายกัน' แต่ไม่มีใครตอบคำถามข้างต้นได้เลย

ขอบคุณล่วงหน้า!

คำตอบ:


11

jQuery เครื่องมือปรับสภาพเบราว์เซอร์ข้าม มันให้คุณดังต่อไปนี้

  • โปรแกรมอรรถประโยชน์ DOM
  • ระบบเหตุการณ์
  • อาแจ็กซ์
  • ภาพเคลื่อนไหว
  • อรรถประโยชน์ ES5
  • สิ่งอื่น ๆ

Backbone / knockout / yada / yada เป็นไลบรารี่แบบ MVC ที่จะช่วยคุณจัดโครงสร้างและเขียนแอปพลิเคชั่นแบบแยกส่วน คุณต้องการสิ่งเหล่านี้หากคุณต้องการโครงสร้างของพวกเขา

RequireJS / yada / yada เป็นตัวโหลดโมดูล คุณต้องการรูปแบบของโมดูลโหลดเดอร์หากคุณต้องการเขียนแอพพลิเคชั่นแบบแยกส่วน

JQuery ไม่ตรงกับกรอบควบคุมต่างๆที่กล่าวถึงข้างต้น?

ดังที่กล่าวไว้ jQuery ทำให้เบราว์เซอร์เป็นปกติ เฟรมเวิร์กคอนโทรลเลอร์ไม่ คุณไม่จำเป็นต้องใช้ jQuery แต่ต้องการวิธีในการทำให้เบราว์เซอร์เป็นมาตรฐาน

JQuery ใช้ร่วมกับแต่ละคนหรือบางคนมีการอบด้วย 'JQuery-style เวอร์ชัน' ของตัวเองหรือไม่?

Backbone / knockout / JavaScriptMVC ไม่มีการทำให้เบราว์เซอร์เป็นมาตรฐานกลับคืนดังนั้นคุณต้องใช้เครื่องมือสำหรับสิ่งนั้น ฉันไม่แน่ใจเกี่ยวกับ SproutCore ดูเหมือนว่าจะมีจำนวนมากในนั้น

เป็นเครื่องมือเช่น RequireJS ยังจำเป็นถ้าคุณใช้หนึ่งในกรอบการควบคุมต่างๆที่กล่าวถึงข้างต้น?

สิ่งเหล่านี้จำเป็นเฉพาะถ้าคุณเขียนเพื่อเขียนแอพพลิเคชั่นแบบแยกส่วน ใช่แล้ว

แอปพลิเคชั่นแบบแยกส่วนมีสามรสชาติ

  • async ต้องการโหลดเดอร์เช่น requireJS
  • การซิงค์ต้องการโหลดเดอร์เช่นmodul8
  • ใช้เนมสเปซและเพียงรวมไฟล์
  • แพคเกจเช่นเอนเดอร์

คำจำกัดความแล้วความสามารถที่ได้รับการเข้าสู่ JQuery ตอนนี้เหนือกว่า AMD Loader ที่กล่าวถึงข้างต้นหรือไม่?

ไม่ความสามารถในการกำหนดที่ทำลงใน jQuery ช่วยให้คุณสามารถใช้กับโหลดเดอร์ของ AMD ได้โดยไม่ต้องพัน jQuery คุณยังต้องใช้ตัวโหลด AMD ความสามารถในการ "นั้น" เป็นเพียงแค่น้ำตาลของ jQuery ที่เลื่อนออกไป

อันไหนที่ดูเหมือนโมดูลาร์มากที่สุด? (ดูหมายเหตุด้านล่าง)

นั่นเป็นคำถามที่มีความเห็น ความเห็นส่วนตัวของฉันคือกรอบงานทั้งหมดเหล่านี้รวมถึง jQuery นั้นมีขนาดค่อนข้างใหญ่และไม่ใช่แบบแยกส่วน

คุณต้องการโมดูลาร์เขียนไลบรารีของคุณเขียนสถาปัตยกรรมของคุณเอง

อย่างไรก็ตามถ้าคุณต้องการความชั่วร้ายที่น้อยกว่าฉันจะเลือกกระดูกสันหลังเพราะมันง่ายและเล็กหรือกระดูกสันหลังซึ่งคล้ายกัน


ขอบคุณ Raynos ... ฉันขอให้คุณตอบคำถามได้ดีเสมอ!
ZERO Prisoner

@Marjan ฉันกำลังรอคนอื่น ๆ ที่อาจสนใจที่จะส่งข้อมูลใด ๆ
ZERO Prisoner

@ PrisonerZERO: ไม่มีปัญหากับมันเลย ในขณะที่คุณมีความสุขกับคำตอบของ Raynos ความคิดเห็นของฉันก็คือในกรณีที่คุณไม่รู้ว่าจะรับคำตอบ (ฉันไม่ได้ตรวจสอบประวัติของคุณและตัวแทนของคุณแนะนำว่าคุณเป็นผู้ใช้ใหม่ที่นี่)
Marjan Venema

2

ฉันจะตอบ JavaScriptMVC เพราะฉันเป็นผู้มีส่วนร่วม:

JQuery ไม่ตรงกับกรอบควบคุมต่างๆที่กล่าวถึงข้างต้น?

JavaScriptMVC ขึ้นอยู่กับ jQuery และใช้อย่างกว้างขวาง

JQuery ใช้ร่วมกับแต่ละคนหรือบางคนมีการอบด้วย 'JQuery-style เวอร์ชัน' ของตัวเองหรือไม่?

JavaScriptMVC ไม่มีฟังก์ชั่นการแข่งขันกับ jQuery สิ่งนี้ไม่เป็นความจริงกับ Backbone ที่มีระบบเหตุการณ์ของตัวเอง แต่กระดูกสันหลังหรือกระดูกสันหลังเพิ่มอะไรน้อยมาก

เป็นเครื่องมือเช่น RequireJS ยังจำเป็นถ้าคุณใช้หนึ่งในกรอบการควบคุมต่างๆที่กล่าวถึงข้างต้น?

JavaScriptMVC มาพร้อมกับระบบการจัดการการพึ่งพา -> ขโมย คุณสามารถใช้ JavaScriptMVC กับ RequireJS ได้จริง แต่การขโมยมีประสิทธิภาพมากกว่าและผู้ใช้มีขนาดเท่ากันโดยประมาณ

อันไหนที่ดูเหมือนโมดูลาร์มากที่สุด? (ดูหมายเหตุด้านล่าง)

นี่ไม่ใช่ความเห็น JavaScriptMVC เป็นแบบแยกส่วนมาก คุณใช้สิ่งที่คุณต้องการเท่านั้น เมื่อเทียบกับ Backbone หรือกระดูกสันหลังคุณสามารถใช้ชิ้นส่วนแบบสแตนด์อโลน M, V หรือ C เมื่อประกอบเข้าด้วยกันมันจะใหญ่กว่า Backbone เพียง 1k เท่านั้น (เมื่อใช้ jQuery และ Underscore) คุณสามารถดูส่วนประกอบพื้นฐานขนาดต่างๆได้ที่นี่: https://github.com/jupiterjs/javascriptmvc/issues/26

แต่ JavaScriptMVC นั้นมีประสิทธิภาพมากกว่า (เทียบกับฟีเจอร์) vs Backbone หรือ Spine ตัวอย่างเช่นมันจัดการเหตุการณ์ templated ป้องกันการรั่วไหลของหน่วยความจำจริงทั้งหมด นี่คือเคล็ดลับเครื่องมือที่ซ่อนตัวเองเมื่อมีการคลิกหน้าต่าง:

$.Controller('Tooltip',{
  "{window} click" : function(){
    this.element.remove();
  }
})

นี่เป็นสิ่งสำคัญอย่างยิ่งกับแนวทาง MVC เมื่อตัวควบคุมของคุณกำลังรับฟังการเปลี่ยนแปลงในรูปแบบเช่น:

$.Controller('Todos',{
  "{Todo} created" : function(Todo, ev, createdTodo){

  }
})

ตัวควบคุมจะยกเลิกการเชื่อมโยงตัวจัดการเหตุการณ์ภายนอกทั้งหมดเหล่านี้โดยอัตโนมัติ

จุดแข็งอื่น ๆ เพียงไม่กี่ส่วนของ MVC:

  • $ .Class เป็นระบบคลาสที่ทรงพลังมาก
  • $ .View และ $ .Model รองรับการรอการตัดบัญชี
  • $ .Controller สามารถ 'rebind' ตัวจัดการเหตุการณ์
  • $ .Model รองรับการเชื่อมโยง, getter / setters, ค่าเริ่มต้น, การตรวจสอบความถูกต้อง

ตอนนี้ JavaScriptMVC เป็นมากกว่าส่วน MVC (ซึ่งเป็นส่วนหนึ่งของโครงการย่อย jQueryMX) มันมี:

  • jQueryMX - ฟังก์ชั่นที่ขาดหายไปของ jQuery เช่นกิจกรรมพิเศษผู้ช่วย Dom ฯลฯ
  • Steal - ระบบการจัดการการพึ่งพา แต่มันสามารถทำสิ่งต่าง ๆ เช่นใช้แอป Ajax และทำให้ Google รวบรวมข้อมูลได้
  • FuncUnit - กรอบการทดสอบที่มีประสิทธิภาพสุดยอด

ตอนนี้สิ่งที่ใช้มากขึ้นอยู่กับ หลายอย่างขึ้นอยู่กับว่าคุณกำลังสร้าง "แอพ" หรือ "หน้า" แอปพลิเคชันที่ต้องการการทดสอบการจัดการการพึ่งพาที่คุณสนใจเกี่ยวกับการรั่วไหลของหน่วยความจำฉันจะดู JMVC หรือ SproutCore

หากคุณกำลังติดตั้งวิดเจ็ตพื้นฐานสองสามชิ้นด้วยกันฉันจะดูกระดูกสันหลังหรือกระดูกสันหลัง


"กระดูกสันหลังหรือกระดูกสันหลังคุณสามารถใช้ชิ้นส่วน M, V หรือ C แบบสแตนด์อโลน" ยกเว้น M, V และ C แต่ละตัวมีขนาดใหญ่เท่ากับกระดูกสันหลังและกระดูกสันหลัง
Raynos

ที่ไม่เป็นความจริง. แบ็คโบนคือ 5k โดยมีการพึ่งพาขีดล่าง ฉันไม่แน่ใจว่ากระดูกสันหลังคืออะไร แต่นี่คือรายละเอียด: ระดับ: 1k, ตัวควบคุม: 1.74k, รุ่น: 2.8k, $ .View: 1.6k, $ .String: .5k สำหรับรวมกันทั้งหมด 8.6k มีมากขึ้น 3k แต่มีคุณสมบัติที่มีประโยชน์มากมาย
Justin Meyer

คุณจะใช้ JavaScriptMVC กับสิ่งอื่นเช่นการควบคุม Kendo UI หรือไม่ การควบคุมอื่น ๆ คืออะไร?
ZERO Prisoner

ใช่ไลบรารี UI ที่อิง jQuery ควรใช้งานได้ดี (ตราบใดที่มันใช้ระบบเหตุการณ์ของ jQuery สำหรับกิจกรรม)
Justin Meyer

ฉันควรทราบว่า Backbone สามารถใช้ Zepato แทน jQuery ทำให้มันน้อยกว่าการพึ่งพา JMVC MVC ที่รวมกันกับ jQuery แต่คุณสูญเสียไปเล็กน้อยโดยไม่มี jQuery
Justin Meyer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.