Knockout.js nedir?
Knockout harika bir Javascrip kütüphanesiYalnızca net ve temiz bir temel veri modeli kullanarak iyi görüntüleme ve düzenleme yeteneklerine sahip metin açısından zengin bir kullanıcı arayüzü oluşturmanıza yardımcı olur. Yerel kullanıcı arayüzü içeriğinizin otomatik olarak güncellenmesi gerektiğinde (örneğin, kullanıcı davranışlarındaki değişikliklere veya harici veri kaynaklarına bağlı olarak), KO kolayca uygulanabilir ve bakımı çok kolaydır.
KO'nun önemli özellikleri:
Zarif bağımlılık takibi - Veri kaynak modeli değiştiğinde, kullanıcı arayüzünüzün belirtilen içeriğini otomatik olarak güncelleyebiliyor. Deklaratif bağlama - UI'nizi veri kaynak modeline basit ve basit bir şekilde bağlar ve herhangi bir iç içe yapı şablonunu kullanarak karmaşık dinamik bir arayüz oluşturabilirsiniz. İyi ölçeklenebilirlik - özel bir davranış, birkaç basit kod satırıyla yeni bir bildiri olarak bağlanarak uygulanabilir.
Diğer avantajlar:
Saf Javascrip{filtering}t kütüphanesi - herhangi bir sunucu ve istemci teknolojisiyle uyumludur. Mevcut uygulamalara iyi uygulanabilir - programın ana mimarisinde değişiklik gerekmeden. Basitlik - Gzip sıkıştırmasından sadece 13K sonra. Herhangi bir büyük tarayıcı ile uyumlu (IE 6+, Firefox 2+, Chrome, Safari ve diğerleri) Davranış odaklı geliştirme ile kapsamlı bir spesifikasyon seti – bu, yeni tarayıcılarda veya platformlarda kolayca doğrulanabilecekleri anlamına gelir. Ruby on Rails, Asp.net MVC veya diğer MVC teknolojilerine aşina geliştiriciler, bunun deklaratif sözdizimi olan bir MVC gerçek zamanlı formu olduğunu görebilir. Başka bir deyişle, KO'yu JSON verilerini düzenleyerek bir kullanıcı arayüzü oluşturmanın bir yolu olarak düşünebilirsiniz... Senin için ne yaparsa yapsın.
Nasıl kullanılır?
En hızlı ve en eğlenceli yol etkileşimli eğitimdir ve en temel teknikleri öğrenip her çevrimiçi örneği öğrendikten sonra projeleriniz üzerinde çalışmaya hazır olursunuz.
KO ve Jquery (prototip vb.) birbirleriyle rekabet ediyor mu yoksa birlikte kullanılabilir mi?
Herkes Jquery'yi çok seviyor! Geçmişte çeşitli tutarsız DOM nesne manipülasyon API yöntemlerine katlanmak zorunda kaldık ve Jquery'nin ortaya çıkışı, geçmişin hantal çerçevelerine harika bir alternatif olarak esnekleşti ve kullanımı kolay hale geldi. Jquery, web sayfası öğeleri işlemesi ve olay yönetimi için mükemmel ve kullanımı kolaydır, KO ise farklı bir sorunu çözer.
Eğer arayüzünüz biraz daha karmaşıksa ve aynı davranışların bazılarını içeriyorsa, sadece Jquery kullanırsanız, arayüz düşündüğünüzden daha karmaşık ve zor olur, ayrıca bakımı oldukça pahalı olur. Bir tabloda öğe listesinin gösterilmesini, listelerin sayısını belirtmeyi ve öğe listesi sayısı 5'ten az olduğunda "Ekle" butonunu etkinleştirme örneğini ele alalım; aksi takdirde bunlar devre dışı bırakılıyor. Jquery'nin temel bir veri modeli konsepti yok, bu yüzden proje listesi sayısını almak istiyorsanız, tablo/tr/div sayılarından çıkarım yapmanız gerekir. Bazı SPANS'lerde veri miktarını göstermeniz gerekiyorsa, yeni veri eklerken SPAN'ın metnini güncellemeyi de unutmamalısınız. Tabii ki, toplam sayı >=5 olduğunda, Ekle butonunu devre dışı bırakmanız gerektiğini de unutmamalısınız. Sonra, Silme fonksiyonunu uygulamak istiyorsanız, tıklandıktan sonra hangi DOM öğesinin değiştirilmesi gerektiğini belirtmeniz gerekir.
Knockout ile bunu yapmak nasıl farklı?
KO ile her şey çok basit hale geliyor. Projenizin karmaşıklığını kolayca ölçeklendirmenizi sağlar ve ortaya çıkan veri tutarsızlıkları konusunda endişelenmenize gerek kalmaz. Sadece verilerinizi bir Javascrip{filter}t dizisine dönüştürür ve ardından foreach kullanarak veri dizisini bir tabloya veya sayfadaki divs kümesine bağlar. Veri dizisi değiştiğinde, arayüz otomatik olarak değişikliğe yanıt verir (yeni bir satır nasıl veya nerede ekleneceğini belirtmenize gerek yoktur), geri kalanı ise arayüz veri senkronizasyonudur. Örneğin, veri miktarını göstermek için aşağıdaki SPAN'ı ilan edebilirsiniz:
İşte bu! Güncellemek için kod yazmanıza gerek yok, güncellemesi myItems dizisinde yapılan değişikliklere bağlı. Benzer şekilde, Ekle butonunun etkinleştirilmesi ve devre dışı bırakılması, myItems dizinin uzunluğuna bağlıdır, aşağıdaki gibi:
Bundan sonra, "Sil" fonksiyonunu uygulamanız gerekiyorsa, arayüz öğelerini nasıl manipüle edeceğinizi belirtmenize gerek yok, sadece veri modelini değiştirmeniz yeterli.
Özet: KO, jQuery ve benzeri DOM manipülasyon çerçeveleriyle rekabet etmeyi düşünmüyor. KO, veri modelini kullanıcı arayüzü arayüzüyle ilişkilendirmek için yüksek seviyeli bir yol sunar.KO jQuery'nin kendisine bağlı değil, ama jQuery'yi birlikte kullanabilirsiniz, Canlı ve nazik arayüz değişiklikleri jQuery kullanımını gerektirir.
Kaynaklar:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|