Backbone.js'nin amacı nedir?


442

Backbone.js'nin faydasını http://documentcloud.github.com/backbone sitesinden anlamaya çalıştım , ancak yine de fazla bir şey bulamadım.

Nasıl çalıştığını ve daha iyi JavaScript yazarken nasıl yardımcı olabileceğini anlatarak biri bana yardımcı olabilir mi?


36
Bu bir MVC çerçevesi. Verilerinizi modellere, DOM manipülasyonlarınızı görünümlere soyutlamaya ve olayları kullanarak ikisini birbirine bağlamaya teşvik eder.
Raynos

MVC bağlamında bir "görünüm" olayları nasıl işleyebilir? Bu, backbonejs.org'un girişlerinde iddia ettiği şeydir.

3
Öğrenmeye değer. Başlamakta zorlandım, ancak öğrenme eğrisindeki birkaç kamburun üstesinden geldikten sonra gerçekten çok zor değil. Wine Cellar demosuyla başlayın.
kmitchel46725

2
Omurga bağlamında, görünüm bir kontrolör olarak iki katına çıkar. DOM olaylarını dinler ve uygun şekilde modellere takar. Ayrıca, modellerinizdeki ve koleksiyonlarınızdaki değişiklikleri dinler ve DOM'u uygun şekilde yeniden çizer. Omurga bir MV paternidir, ancak C ima edilir. Omurga Rails olsaydı, şablon görünüm ve görünüm denetleyici olurdu.
superluminary

Aslında kontrolörler sağlamadığı için bir MVVM çerçevesi olduğunu düşündüm.
SoluableNonagon

Yanıtlar:


393

Backbone.js temelde Javascript kodunuzu bir MVC (Model, View, Controller) tarzında yapılandırmanıza izin veren uber-hafif bir çerçevedir ...

Model , kodunuzun verileri alan ve dolduran bir parçasıdır,

Görünüm , bu modelin HTML temsilidir (modeller değiştikçe görünümler değişir vb.)

ve bu durumda Javascript uygulamanızın durumunu bir hashbang URL'si aracılığıyla kaydetmenize izin veren isteğe bağlı Denetleyici , örneğin: http://twitter.com/#search?q=backbone.js

Omurga ile keşfettiğim bazı profesyoneller:

  • Artık Javascript Spaghetti: kod organize edilmiş ve daha sonra JAMMIT kullanılarak birleştirilen anlamsal olarak anlamlı .js dosyalarına bölünmüştür

  • Artık jQuery.data(bla, bla): DOM'da veri depolamaya, bunun yerine modellerde veri depolamaya gerek yok

  • olay bağlama sadece çalışır

  • son derece kullanışlı Alt Çizgi yardımcı programı kitaplığı

  • backbone.js kodu iyi belgelenmiştir ve çok iyi okunur. Gözlerimi JS kodu tekniklerine açtım.

Eksileri:

  • Başımı etrafına sarmak ve koduma nasıl uygulayacağımı anlamak için biraz zaman aldı, ama ben bir Javascript acemi oldum.

Aşağıda, Backbone ile Rails'i arka uç olarak kullanma konusunda bir dizi harika öğretici yer almaktadır:

CloudEdit: Rails ile Bir Backbone.js Eğitimi:

http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/

http://www.jamesyu.org/2011/02/09/backbone.js-tutorial-with-rails-part-2/

ps Model koleksiyonları ve taklit iç içe modeller ile uğraşmanıza izin veren bu harika Koleksiyon sınıfı da var, ancak sizi en başından karıştırmak istemiyorum.


1
başka bir yararlı öğretici: coenraets.org/blog/2012/01/…
Jeffrey Nicholson Carré

16
Bu cevap yanlış. Omurga bir MVC çerçevesi değildir. Bu bir MV * çerçevesidir. Ana bileşenleri anlamak çok önemlidir. Ve Kontrolörleri yok. İyi şanslar.

3
Sadece tekrarlamak için, Omurga kütüphanesinin kendisinin kontrolörleri yoktur, ancak Jeremy Ashkenas, View nesnelerinin, modellere sahip olan ve ön uçtan gelen ve verilere sahip olan JavaScript nesneleri oldukları için yerlerini aldıklarını söylemiştir. Elbette bir Denetleyici, Hizmet, hatta bir ViewModel uygulamanızı engelleyecek hiçbir şey yoktur, sadece JavaScript'dir.
superluminary

3
JAMMIT nedir? ɯnɯıuıɯ ʇunoɔ ɹǝʇɔɐɹɐɥɔ
user1717828

1
RE: "jQuery.data (bla, bla): verileri DOM'da depolamaya gerek yok" IIRC, jQuery zaten bellekte saklar. yani data-, DOM öğelerine öznitelikleri geri ayarlamaz . (Dolayısıyla, HTML'iniz data-sayfa yüklendiğinde niteliklere sahipse ve değiştirildiyse, DOM ve bellek içi gösterim OOS olacaktır - ancak yine de mem içi verilerle çalışıyor olmalısınız)
JoeBrockhaus

250

Tarayıcıda karmaşık kullanıcı arabirimleri oluşturacaksanız, muhtemelen sonunda Backbone.js ve Sammy.js gibi çerçeveleri oluşturan parçaların çoğunu icat etmiş bulacaksınız. Yani soru şu: Tarayıcıda onu hak edecek kadar karmaşık bir şey mi yapıyorsunuz (böylece aynı şeyi kendiniz icat etmiyorsunuz).

Oluşturmayı planladığınız şey, kullanıcı arayüzünün görüntülemesini düzenli olarak değiştirdiği ancak tüm yeni sayfaları almak için sunucuya gitmediği bir şeyse, muhtemelen Backbone.js veya Sammy.js gibi bir şeye ihtiyacınız vardır. Böyle bir şeyin en önemli örneği Google'ın GMail'idir. Şimdiye kadar kullandıysanız, ilk giriş yaptığınızda ve daha sonra her şey arka planda gerçekleştiğinde büyük bir HTML, CSS ve JavaScript yığını indirdiğini fark edeceksiniz. Tamamen yeni bir sayfanın oluşturulmasını istemeden, bir e-postayı okumak ve gelen kutusunu işlemek ve hepsini tekrar aramak ve geri aramak arasında hareket edebilir.

Bu çerçevelerin geliştirilmesini kolaylaştırmada mükemmel olduğu bir uygulama. Onlar olmadan, işlevsellik bölümlerini (örneğin, tarih yönetimi için jQuery BBQ, etkinlikler için Events.js, vb.) Almak için çeşitli bireysel kütüphaneleri bir araya getireceksiniz veya her şeyi kendiniz oluşturacaksınız ve her şeyi kendiniz de korumak ve test etmek zorundasınız. Backbone.js gibi binlerce insanın Github'da izlediği bir şeyle, insanların üzerinde çalışabileceği yüzlerce çatalla ve burada Stack Overflow'da yüzlerce soru sorulmuş ve yanıtlanmış yüzlerce soru ile kontrast oluşturun.

Ancak, inşa etmeyi planladığınız şeyin bir çerçeveyle ilişkili öğrenme eğrisine değecek kadar karmaşık olmaması durumunda hiçbir önemi yoktur. Hala PHP, Java veya arka uç sunucunun kullanıcı tarafından talep üzerine web sayfalarını oluşturmanın tüm ağır yükünü kaldırdığı başka bir site oluşturuyorsanız ve JavaScript / jQuery bu işlemin üzerine krema yapıyorsa, Backbone.js'ye ihtiyaç duymayacak veya henüz hazır olmayacak.


21
Gmail ile karşılaştırdığınız için teşekkür ederiz. Geliştirdiğim site için bu konuya daha fazla bakmam gerekmediğini anlamanın kolay bir yoluydu.
Eric Hu

15
Projeniz yeterince büyük olursa, backbone.js gibi bir şeyi kendiniz yazacağınızdan bahsettiğiniz için +1: yeniden Greenspan'ın 10. Kuralı
Matthew Lock

PHP veya bir web hizmeti için bitiş noktası olarak benzer bir şey kullanıyorsanız, geleneksel istek / yanıt stili web geliştirme çerçevesinin% 80 veya 90'ını kullanmıyorsunuzdur. Dolayısıyla, bu tür bir uygulamanın nasıl geliştirildiğine ve daha geleneksel bir web uygulamasına kıyasla büyük bir fark var.
John Munsch

2
Cevabınız için Teşekkürler John Gerçekten Aydınlatıcı
sushil bharwani

1
Gmail referansı gerçekten gözlerimi açtı. Teşekkürler!
T.Kaukoranta

95

Omurga ...

... kodunuzu düzenlemenize yardımcı olacak çok küçük bir bileşen kütüphanesi. Tek bir JavaScript dosyası olarak paketlenmiştir. Yorumlar hariç, 1000'den az gerçek JavaScript satırı vardır. Mantıklı bir şekilde yazılmıştır ve her şeyi birkaç saat içinde okuyabilirsiniz.

Bu bir ön uç kütüphanesidir, web sayfanıza bir komut dosyası etiketi eklersiniz. Yalnızca tarayıcıyı etkiler ve sunucunuz hakkında çok az şey söyler, ancak ideal olarak dinlendirici bir API'yi açığa çıkarması gerekir.

Bir API'niz varsa, Backbone, onunla konuşmanıza yardımcı olacak birkaç yararlı özelliğe sahiptir, ancak herhangi bir statik HTML sayfasına etkileşim eklemek için Backbone'u kullanabilirsiniz.

Omurga içindir ...

... JavaScript'e yapı ekliyor.

JavaScript belirli kalıpları zorlamadığından, JavaScript uygulamaları çok hızlı bir şekilde dağınık hale gelebilir. JavaScript'te önemsizin ötesinde bir şey inşa eden herkes muhtemelen aşağıdaki gibi sorulara karşı koşacaktır:

  1. Verilerimi nerede saklayacağım?
  2. İşlevlerimi nereye koyacağım?
  3. İşlevlerimi nasıl birbirine bağlayacağım, böylece mantıklı bir şekilde çağrılırlar ve spagetti'ye dönmezler mi?
  4. Bu kodu farklı geliştiriciler tarafından nasıl korunabilir hale getirebilirim?

Omurga bu soruları size vererek cevaplamayı amaçlamaktadır:

  • Verileri ve veri koleksiyonlarını temsil etmenize yardımcı olacak modeller ve Koleksiyonlar.
  • Görünümler, verileriniz değiştiğinde DOM'nizi güncellemenize yardımcı olmak için.
  • Bileşenlerin birbirini dinleyebilmesi için bir olay sistemi. Bu, bileşenlerinizin bağlantısını keser ve spagettifikasyonu önler.
  • Minimal mantıklı sözleşmeler kümesi, böylece geliştiriciler aynı kod tabanında birlikte çalışabilir.

Buna MV * deseni diyoruz. Modeller, Görünümler ve isteğe bağlı ekstralar.

Omurga hafif

İlk görünüşlerine rağmen, Omurga fevkalade hafiftir, neredeyse hiç bir şey yapmaz. Yaptığı şey çok faydalı.

Size, oluşturabileceğiniz ve olayları yayabilecek ve birbirini dinleyebilecek bir dizi küçük nesne verir. Örneğin, bir yorumu temsil etmek için küçük bir nesne ve ardından tarayıcıda belirli bir yerde yorumun görüntülenmesini temsil eden küçük bir commentView nesnesi oluşturabilirsiniz.

YorumGörünüme yorumu dinlemesini ve yorum değiştiğinde kendini yeniden çizmesini söyleyebilirsiniz. Sayfanızdaki çeşitli yerlerde aynı yorumu görüntülemenize rağmen, bu görünümlerin tümü aynı yorum modelini dinleyebilir ve senkronize kalabilir.

Kod oluşturmanın bu yolu, kod tabanınız birçok etkileşimle çok büyük hale gelse bile karışık olmanızı önlemeye yardımcı olur.

Modeller

Başlarken, verilerinizi genel bir değişkente veya DOM'da veri özellikleri olarak depolamak yaygındır . Her ikisinin de sorunları var. Global değişkenler birbiriyle çatışabilir ve genellikle kötü formdur. DOM'da depolanan veri öznitelikleri yalnızca dizeler olabilir, bunları içeri ve dışarı ayrıştırmanız gerekir. Diziler, tarihler veya nesneler gibi şeyleri depolamak ve verilerinizi yapılandırılmış bir biçimde ayrıştırmak zordur.

Veri özellikleri şu şekilde görünür:

<p data-username="derek" data-age="42"></p>

Omurga, verilerinizi ve ilişkili yöntemleri temsil etmek için bir Model nesnesi sağlayarak bunu çözer . Yapılacaklar listeniz olduğunu varsayalım, bu listedeki her öğeyi temsil eden bir modeliniz olur.

Modeliniz güncellendiğinde bir etkinlik başlatır. Söz konusu nesneye bağlı bir görünümünüz olabilir. Görünüm, model değişikliği olaylarını dinler ve kendini yeniden oluşturur.

Görüntüleme

Omurga, DOM ile konuşan View nesnelerini sağlar. DOM'yi manipüle eden veya DOM olaylarını dinleyen tüm işlevler buraya gider.

Bir Görünüm tipik olarak tüm görünümü veya muhtemelen görünümün bir bölümünü yeniden çizen bir oluşturma işlevi uygular. Bir oluşturma işlevi uygulama zorunluluğu yoktur, ancak bu yaygın bir konvansiyondur.

Her görünüm DOM'un belirli bir bölümüne bağlıdır, bu nedenle yalnızca arama formunu dinleyen bir searchFormView ve yalnızca alışveriş sepetini görüntüleyen bir shoppingCartView'a sahip olabilirsiniz.

Görünümler genellikle belirli Modellere veya Koleksiyonlara da bağlıdır. Model güncellendiğinde, görünümün dinlediği bir olayı başlatır. Görünüm, yeniden çizmek için render olarak adlandırılabilir.

Benzer şekilde, bir forma yazdığınızda görünümünüz bir model nesnesini güncelleyebilir. Bu modeli dinleyen diğer her görünüm kendi oluşturma işlevini çağırır.

Bu, kodumuzu düzenli ve düzenli tutan endişelerin temiz bir şekilde ayrılmasını sağlar.

Render fonksiyonu

Oluşturma işlevinizi uygun gördüğünüz herhangi bir şekilde uygulayabilirsiniz. DOM'u manuel olarak güncellemek için buraya bazı jQuery koyabilirsiniz.

Ayrıca bir şablon derleyebilir ve kullanabilirsiniz. Bir şablon yalnızca ekleme noktaları olan bir dizedir. Bir JSON nesnesiyle birlikte bir derleme işlevine iletir ve DOM'nize ekleyebileceğiniz derlenmiş bir dizeyi geri alırsınız.

Koleksiyonları

Model listelerini saklayan koleksiyonlara da erişebilirsiniz, bu nedenle todoCollection todo modellerinin bir listesi olacaktır. Bir koleksiyon bir model kazandığında veya kaybettiğinde, sırasını değiştirdiğinde veya koleksiyondaki bir model güncellendiğinde, tüm koleksiyon bir olayı tetikler.

Bir görünüm bir koleksiyonu dinleyebilir ve koleksiyon her güncellendiğinde kendini güncelleyebilir.

Koleksiyonunuza sıralama ve filtre yöntemleri ekleyebilir ve örneğin kendisini otomatik olarak sıralamasını sağlayabilirsiniz.

Ve Hepsini Birleştirecek Olaylar

Uygulama bileşenleri mümkün olduğunca birbirinden ayrılır. Olayları kullanarak iletişim kurarlar, böylece bir shoppingCartView bir shoppingCart koleksiyonunu dinleyebilir ve sepet eklendiğinde kendini yeniden çizebilir.

shoppingCartView.listenTo(shoppingCart, "add", shoppingCartView.render);

Tabii ki, diğer nesneler de alışveriş sepetini dinliyor olabilir ve toplamı güncellemek veya durumu yerel depolama alanına kaydetmek gibi başka şeyler de yapabilir.

  • Görünümler Modelleri dinler ve model değiştiğinde oluşturulur.
  • Görünümler koleksiyonları dinler ve koleksiyondaki bir öğe değiştiğinde bir liste (veya ızgara veya harita vb.) Oluşturur.
  • Modeller, belki de bir form düzenlendiğinde durumu değiştirebilmeleri için Görünümleri dinler.

Nesnelerinizi bu şekilde ayırmak ve olayları kullanarak iletişim kurmak, düğümlere asla karışmayacağınız ve yeni bileşenler ve davranışlar eklemenin kolay olduğu anlamına gelir. Yeni bileşenlerinizin sistemde bulunan diğer nesneleri dinlemesi yeterlidir.

Sözleşmeler

Omurga için yazılan kod gevşek bir dizi konvansiyonu takip eder. DOM kodu bir Görünüm'e aittir. Koleksiyon kodu bir Koleksiyona aittir. İş mantığı bir modele gider. Kod tabanınızı alan başka bir geliştirici, çalışmakta olan yere vurabilir.

Sonuç olarak

Omurga, kodunuza yapı katan hafif bir kütüphanedir. Bileşenler ayrıştırılır ve olaylar aracılığıyla iletişim kurar, böylece bir karmaşaya neden olmazsınız. Yeni bir nesne oluşturarak ve mevcut nesnelerinizi uygun şekilde dinlemesini sağlayarak kod tabanınızı kolayca genişletebilirsiniz. Kodunuz daha temiz, daha hoş ve daha sürdürülebilir olacaktır.

Benim küçük kitabım

Omurga'yı o kadar çok sevdim ki, bu konuda küçük bir giriş kitabı yazdım. Çevrimiçi olarak buradan okuyabilirsiniz: http://nicholasjohnson.com/backbone-book/

Ayrıca malzemeyi kısa bir çevrimiçi kursa katıldım, burada bulabilirsiniz: http://www.forwardadvance.com/course/backbone . Kursu yaklaşık bir gün içinde tamamlayabilirsiniz.


1
Görünüm teknik olarak bir Şablon oluşturmuyor, aslında 'kendisi' değil mi? 'Presenter' veya 'ViewModel' rolünün daha fazlasını oynuyor gibi görünüyor.
JoeBrockhaus

1
İyi bir nokta olsa da, görünüm istediğiniz her şeyi işleyebilir. Bu bir şablon, bazı keyfi jQuery, hatta bir formdaki bir değer veya bir rozetteki bir sayı gibi küçük bir şey olabilir.
superluminary

3
@superluminary reallly yardımcı olur !!
Antoops

2
Harika bir açıklama!
TastyCode

3
Kitap çok faydalı. Yazdığınız için teşekkürler.
Sung Cho

32

İşte ilginç bir sunum:

Backbone.js'ye giriş

İpucu (slaytlardan):

  • Tarayıcıda raylar mı var? Hayır .
  • JavaScript için bir MVC çerçevesi? Sorta .
  • Büyük bir yağ devlet makinesi mi? EVET !

14

Backbone.js, kodunuzu düzenlemenize yardımcı olan bir JavaScript çerçevesidir. Kelimenin tam anlamıyla üzerine uygulamanızı oluşturduğunuz bir omurga. Widget sağlamaz (jQuery UI veya Dojo gibi).

Sunucunuzdaki RESTful uç noktalarıyla arayüz oluşturan temiz JavaScript kodu oluşturmak için genişletebileceğiniz serin bir temel sınıflar seti sunar.


Projemde jQuery ve mootools ve genel javascript kullanıyorum. Backbone.js'nin bana nasıl yardımcı olacağı ve Huzurlu bitiş noktası nedir.
sushil bharwani

1
jQuery temel olarak DOM Manipülasyonu içindir, burada Omurga yoğun olarak olay güdümlü bir çerçeve olarak kullanıldığı gibi, verileri modellemek için de kullanılır.
RobertPitt

14

JQuery ve Mootools, projenizin birçok aracına sahip bir araç kutusudur. Omurga, projeniz için JQuery veya Mootools kullanarak bir uygulama oluşturabileceğiniz bir mimari veya omurga gibi davranır.


evet aslında ismin sadece bir isim olduğunu varsaymak kolaydır. Ama bu durumda, kelimenin tam anlamıyla omurga anlamına gelir :)
msanjay


11

İtiraf etmeliyim ki MVC'nin tüm "avantajları" işimi hiç bu kadar kolay, hızlı ya da daha iyi yapmamıştı. Sadece tüm kodlama deneyimini daha soyut ve zaman alıcı hale getirir. Bakım, bir başkasının ayıklamanın ne anlama geldiğine dair anlayışını ayıklamaya çalışırken bir kabustur. Kaçınızın Cairngorm'u MVC modeli olarak kullanan bir FLEX sitesini güncellemeye çalıştığınızı bilmiyorum, ancak güncelleme için 30 saniye sürmesi genellikle 2 saatten fazla sürebilir (sadece tek bir etkinlik bulmak için avlanma / izleme / hata ayıklama) ). MVC benim için yapabileceğiniz bir "avantaj" idi ve hala da öyle.


2
Dürüst olmak gerekirse, herhangi bir çerçeve yapısı, cahil programcılar veya sadece bakım vermeyen programcılar tarafından parçalanabilir ve deforme edilebilir. Bir zamanlar çok basit ve inşa edilmesi kolay bir CodeIgniter sitesinde çalıştım. Ama birlikte çalıştığım salak, 90'lı yıllarda bir şeyler yapmaya o kadar alışıktı ki, onu temiz bir OOP yaklaşımından OOP içinde deforme olmuş bir prosedür yaklaşımına dönüştürdü.
Patrick

9
Birisinin sıfırdan bir site yazdığını ve herhangi bir çerçeve kullanmadan güzelce yazdığını gördüm. Bir keresinde bu nispeten yeni / yeşil bir PHP programcısı tarafından yapıldı. Sadece rasyonel bir zihne sahipti, bu da işleri uygulamak için oldukça kaygan bir yol buldu. İyi bir çerçeve kullanmak sizi şimdiye kadar elde edecektir. Oysa harika programlama uygulamaları kullanmak sizi ışıklı yıllara götürecektir.
Patrick

2
@ user1415445: Söylediğiniz şey aslında, veri mantığı, oluşturma mantığı ve sunum katmanı widget'ları ile veri depolama / alma kodu arasındaki iletişimi işleyen tek bir sınıfa sahip olmanın, bu endişelerin her birinin ayrı sınıflar / nesneler tarafından ele alınmasından daha kolay olduğu anlamına gelir. Hangi inanmak zor. Bir kez MVC ile ve bir kez olmadan, iki kez yazılmış önemsiz olmayan bir uygulamayı gösteremezseniz, MVC olmayan sürümünün bakımı daha kolay, vb.
Behrang Saeedzadeh

1
Önemsiz olanın ötesinde herhangi bir uygulamanın bir desene ihtiyacı vardır ve verilerin sunumu ile uğraşırken MVC mükemmel bir desendir. Kötü bir deneyim yaşadığınıza benziyor, ancak bu durumun hatası değil.
superluminary

kullanılan kalıplar ve uygulamalar ne olursa olsun, belgeler her zaman eksik rosetta taşı olacaktır, çünkü bunlar zamanla değişir. MVC gibi desenlerin güzelliği, sıhhi tesisatı anladıktan sonra, yeni bir özellik eklediğinizde veya eskisini güncellediğinizde sıhhi tesisat yazma konusunda asla zaman kaybetmek zorunda kalmamanızdır. Yani evet, sıhhi tesisatı anlayana kadar, bu bir nafile alıştırması olacak. Gelecekte bilinmeyen geliştiricilerin yeterli bir şekilde anlaşılmasını sağlamanın tek yolu yeterince makul standartlara uymaktır. Birisinin spagettiye karışıklığını korumak ve anlamak daha hızlı veya daha kolay değildir ..
JoeBrockhaus


3

backbone.js, JavaScript ancak Extjs içeren Model-View-Controller (MVC) Java script tarafından MVC Pattern için omurgasından daha iyi bir

Omurga ile neredeyse istediğiniz her şeyi yapma özgürlüğüne sahipsiniz. Api'ye çatallanmaya ve özelleştirmeye çalışmak yerine, basitliği ve uygulama kolaylığı için Backbonejs'u kullanırım. Yine ikisinden ne istediğinizi bir kütüphane diğeri bir bileşen olduğunu söylemek zor


3

Omurga, CoffeeScript de yazan Jeremy Ashkenas tarafından oluşturuldu. JavaScript ağırlıklı bir uygulama olarak, şimdi Backbone olarak bildiğimiz şey, uygulamayı tutarlı bir kod tabanına yapılandırmaktan sorumluydu. Omurganın tek bağımlılığı olan Underscore.js de DocumentCloud uygulamasının bir parçasıydı.

Omurga, geliştiricilerin, istemci tarafı web uygulamalarında bir disiplin ve yapıya sahip bir veri modelini yönetmelerine yardımcı olur , geleneksel sunucu tarafı uygulama mantığında alacağınız .

Backbone.js kullanmanın ek yararları

  1. Omurga'yı bir çerçeve olarak değil, bir kütüphane olarak görün
  2. Javascript artık yapılandırılmış bir şekilde, (MVVM) Modeli ediliyor
  3. Geniş kullanıcı topluluğu

2

Ayrıca denetleyicileri ve KVO ile görünümleri kullanarak yönlendirme ekler. Onunla "AJAXy" uygulamaları geliştirebileceksiniz.

Hafif bir Sproutcore veya Cappuccino çerçevesi olarak görün.


1

Müşteri tarafında bir MVC tasarım deseni, inan bana .. Daha temiz ve net bir kod bahsetmiyorum, kod korumak için daha kolay, tonlarca kod kurtaracak. İlk başta biraz zor olabilir, ama inan bana harika bir kütüphane.


0

Zaten çok iyi cevaplar. Omurga js kodu düzenli tutmaya yardımcı olur. Modelin / koleksiyonun değiştirilmesi, görüntüleme yükünü otomatik olarak azaltan görünüm oluşturmaya özen gösterir.

Geliştirme için maksimum esneklik sağlamasına rağmen, geliştiriciler modelleri yok etmeye ve görüşleri düzgün bir şekilde kaldırmaya dikkat etmelidir. Aksi takdirde uygulamada bellek sızıntısı olabilir.


-3

Zaman zaman değiştirilmesi gereken ve gerçek zamanlı çalışan (Facebook veya StackOverflow gibi) birçok AJAX isteğiyle çok fazla kullanıcı etkileşimi içeren bir web uygulaması Backbone.js gibi bir MVC çerçevesi kullanmalıdır. İyi kod oluşturmanın en iyi yolu budur.

Uygulama yalnızca küçükse, özellikle ilk kez kullananlar için Backbone.js aşırıya kaçar.

Omurga size müşteri tarafı MVC ve bunun getirdiği tüm avantajları sağlar.


5
omurga "gerekir"? Stackoverflow veya facebook, iki örnek, omurga veya alt çizgi kullanarak hiç göremiyorum. Bu talep için bir referansınız var mı?
David Meister

Elbette başka birçok MV * kütüphanesi var, Backbone bunlardan biri. Genel olarak, MVC daha büyük kod parçaları geliştirirken işleri düzenli ve düzenli tutmaya yardımcı olur.
superluminary
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.