Apakah ada kerangka kerja JavaScript MVC (mikro-) sisi klien ?
Saya memiliki bentuk HTML yang agak rumit, dan itu akan mendapat manfaat dari pola MVC.
Saya membayangkan solusi yang baik akan memberikan yang berikut:
- Model dan View memperbarui Pengontrol ketika nilai berubah (pola Pengamat)
- Populasikan model dari data formulir saat halaman dimuat
- Mengisi formulir dari model ketika model berubah
Ajax, komet, JSONP , dan semua jazz itu benar-benar berlebihan.
javascript
model-view-controller
forms
nicholaides
sumber
sumber
Jawaban:
Backbone adalah kerangka kerja ringan yang bagus. Cobalah: http://backbonejs.org/
sumber
JavaScriptMVC adalah solusi terbaik. Semuanya adalah pendekatan plugin yang memungkinkan Anda memilih hanya fitur yang Anda butuhkan. Pada 2.0, ini didasarkan pada jQuery.
Untuk meningkatkan situs web Anda secara progresif, itu tergantung pada pengguna karena JMVC hanya menyediakan lapisan tengah untuk pengembangan - terserah Anda untuk membuat sendiri pilihan desain itu.
Namun, JavaScriptMVC hanyalah tujuan umum perpustakaan JavaScriptMVC karena pengendali berbasis delegasi acara yang kuat.
Delegasi acara memungkinkan Anda terhindar dari harus melampirkan penangan acara, dan cukup membuat aturan untuk halaman Anda.
Akhirnya, JMVC lebih dari sekedar arsitektur MVC. Ini memiliki semua bagian dari siklus pengembangan yang dicakup dengan:
sumber
Spine memiliki API yang mirip dengan Backbone tetapi jauh lebih kecil. Ini fitur warisan prototypal.
sumber
AngularJS bekerja dengan baik bersama dengan jQuery dan akan banyak membantu Anda dengan struktur MVC dan pemisahan kekhawatiran yang ketat.
Lingkungan pengujian penuh dan Injeksi Ketergantungan termasuk ...
Lihat di http://angularjs.org
sumber
Memang ada: http://www.javascriptmvc.com/
Saya pikir Anda akan menemukan ini cukup!
sumber
Saya pikir ini terlihat seperti sesuatu yang harus Anda periksa: http://knockoutjs.com/
(Sebagai programmer silverlight / wpf ini adalah perpustakaan yang membuat saya akhirnya mulai belajar javascript. Hal ini didasarkan pada pola Model-View-View-Model (MVVM), bagi saya saat ini sepertinya pilihan yang bagus!)
sumber
Ada Backbone.js yang populer
sumber
Ember.js
Ini adalah tiga fitur yang membuat Ember senang digunakan:
Binding
Gunakan binding untuk menjaga properti di antara dua objek berbeda dalam sinkronisasi. Anda cukup mendeklarasikan pengikatan sekali, dan Ember akan memastikan bahwa perubahan disebarkan ke kedua arah.
Inilah cara Anda membuat ikatan antara dua objek:
Bindings memungkinkan Anda untuk merancang aplikasi menggunakan pola MVC (Model-View-Controller), lalu dengan mudah mengetahui bahwa data akan selalu mengalir dengan benar dari lapisan ke lapisan.
Properti yang Dihitung
Properti yang dihitung memungkinkan Anda untuk memperlakukan fungsi seperti properti. Properti terkomputasi berguna karena mereka dapat bekerja dengan binding, sama seperti properti lainnya.
Memperbarui Templat Otomatis
Ember menggunakan Handlebars, perpustakaan templating semantik. Untuk mengambil data dari aplikasi JavaScript Anda dan memasukkannya ke dalam DOM, buat tag dan masukkan ke dalam HTML Anda, di mana pun Anda ingin nilai muncul:
sumber
Stapes.js
Pengungkapan penuh: saya penulis perpustakaan ini :)
Jika Anda mencari sesuatu yang sangat kecil (1.5kb minified / gzipped) lihat, dan katakan padaku jika Anda menyukainya.
sumber
new
operator yang membingungkan ). Apa yang tampaknya tidak perlu lagieach
dan lagimap
. Saya sudah memilikinya di Underscore.js dan jQuery .Jika kebutuhan Anda benar - benar sederhana, Anda dapat menulis MVC sederhana sendiri seperti yang dilakukan Alex Netkachov .
Contohnya dibangun di atas dojo (Catatan: mereka tidak bekerja untuk saya di halamannya karena file dojo.js yang hilang), tetapi Anda dapat mengikuti pola dalam Javascript biasa.
sumber
Ini mungkin berlebihan untuk apa yang Anda butuhkan, tetapi SproutCore adalah kerangka kerja MVC, dan itu tidak terlihat lebih berat daripada JavaScriptMVC atau TrimPath's Junction .
Sayangnya, tak satu pun dari ini tampaknya dibangun di atas prinsip peningkatan progresif .
sumber
Kerangka kerja ActionScript MVC PureMVC yang populer baru-baru ini di-porting ke JavaScript. Saya belum memiliki kesempatan untuk mencobanya, tetapi saya yakin itu bagus.
sumber
Silakan juga checkout jquery-claypool .
jquery-claypool adalah kerangka kerja mvc kecil, cepat, dan tersedia yang dibangun di atas jquery, berdasarkan pengalaman saya dengan django, rails, spring dll. Bobotnya sangat ringan dan berjalan baik pada klien dan di lingkungan server.
ini menyediakan kerangka kerja routing untuk MVC bersih, kategori logging, filter (aop), pembuatan pengendali yang malas, inversi kontrol, konvensi-konfigurasi lebih dan tidak banyak lagi dengan desain.
itu tidak melakukan apa pun yang sudah dilakukan jquery, terasa seperti jquery, dan bekerja seperti kerangka kerja yang baik seharusnya: sederhana.
jquery-claypool
Semoga Anda memeriksanya.
sumber
Jamal adalah yang paling ringan yang pernah saya lihat. Ini juga berdasarkan jQuery (bonus). Belum pernah digunakan
http://jamal-mvc.com/
sumber
Jika Anda ingin menjaga hal-hal di bawah kendali dan cukup sederhana, Anda mungkin tidak memerlukan kerangka kerja, tetapi hanya menerapkan pola MVC Anda sendiri. Lihat saja artikel ini: Model-View-Controller (MVC) dengan JavaScript oleh Alex Netkachov pada 2006.
sumber
Berikut adalah daftar semua Kerangka JavaScript sumber terbuka yang dikenal umat manusia.
http://getopensource.info/explore/javascript/framework/
Atau hanya kerangka kerja MVC
http://getopensource.info/explore/javascript/mvc/
Pengungkapan: Saya adalah pengembang situs web ini.
sumber
Coba kitty . Hanya 1.4KB dan ketergantungannya hanya EJS.
sumber
UPDATE 2016: Sammy.js tampaknya ditinggalkan.
Lihat Sammy.js
Teks dari situs:
Sebuah webframework kecil dengan kelas.
sumber
Saya tidak akan menyebut ini pekerjaan mikro , tetapi jelas terlihat menarik: Cappuccino Web Framework
sumber
CorMVC, mudah dimengerti dan memulainya, berbasis jquery dan tidak bergantung pada teknologi server apa pun
sumber
Saya telah mengembangkan kerangka kerja MVC Javascript yang sangat sederhana yang disebut MCV . Itu tidak melakukan persis apa yang Anda minta, tetapi mudah diperluas dengan pembantu. Bagaimanapun, itu pasti mikro (1,9 kb dikemas).
Ini bekerja kurang lebih seperti Jamal, tetapi saya memutuskan untuk memutar sendiri karena dua alasan:
sumber
Hanya untuk membuat daftar ini sedikit lebih lengkap: ActiveJS
sumber
Saya memutakhirkan AngularJS (pengungkapan penuh, saya terlibat dalam cara yang terbatas dengan upaya dev sudut) dan saya sangat bersemangat tentang hal itu. Saya melakukan perbandingan berdampingan mengambil satu fitur untuk proyek internal (maaf tidak punya signoff untuk membagikannya) dan mengimplementasikannya di AngularJS dan Backbone. Itu adalah latihan yang bagus dan pada akhirnya, saya sangat condong ke arah Angular. Pengembang inti hebat dalam menjawab pertanyaan dan mereka telah melakukan pekerjaan yang sangat bagus dengan pengintegrasian data bawaan, pengujian unit / e2e dan dokumentasi. Ini masih dalam versi beta dengan 1.0 keluar dalam waktu dekat. Beta sangat stabil.
Ada sedikit perubahan paradigma, dan mereka menggunakan pendekatan yang cukup berbeda dari kebanyakan. Mengintegrasikan plugin jquery favorit Anda membutuhkan sedikit usaha tetapi bisa dilakukan dan telah dilakukan (contr-angular pada github).
Saya akan mengatakan (dan ini adalah masalah bagi kebanyakan kerangka kerja js-centric), pastikan untuk menyelidiki bagaimana membuat konten Anda ramah-SEO (jika penting bagi Anda). Sejak bergabung dengan komunitas sudut pada bulan Juni, saya perhatikan minatnya meningkat dan sejumlah orang membuat posting yang mengatakan bahwa mereka telah melihat Backbone dan yang lainnya tetapi sangat menyukai apa yang mereka lihat di Angular.
sumber
Maverick adalah kerangka kerja MVC JavaScript kecil - http://maverick.round.ee
sumber
Saya akan memasang pipa di sini juga - AFrameJS bekerja dengan jQuery, MooTools, dan Prototype.
sumber
Satu lagi: MooTools-MVC
sumber
Ada kerangka kerja pengikatan JavaScript nilai-kunci yang disebut "Koheren", yang terinspirasi oleh Cocoa Bindings Apple. Kerangka kerja tersebut telah dibeli oleh Apple, tetapi masih ada salinan lama di http://github.com/trek/coherentjs/tree/master .
sumber
Coba kerangka MVC javascript berbasis jQuery ini .
sumber
Satu lagi, ringan dan mungil: http://jqnano.oleksiy.pro/
sumber
Can.js memiliki semua yang Anda butuhkan dan hanya berbobot 8 KB. Ini mengambil bit terbaik dari JavaScriptMVC dan menyaringnya menjadi satu kerangka kerja kecil, namun kickass dengan pengamat, widget, mengikat, karya-karya. Ini kompatibel dengan kerangka kerja utama ( jQuery , Dojo Toolkit , MooTools , dll.). Dokumentasi sangat bagus dan penulis responsif. Ini benar-benar layak untuk dilihat.
sumber