RxJs ve Knockout arasındaki farkları bilen var mı? Yüzeyde bana göre, aynı problemi çözmeye çalışan bir olay UI oluşturmak için çalışıyorlar. Ama her ikisiyle de deneyime sahip biri, nasıl farklılar/nasıl benzerler? Seçmeme yardım etmek için onlar hakkında bir şeyler tarif edebilir misin? Eğer geçit görürdük neden görebilirsiniz olsa da onlar, aslında oldukça farklı çerçeveler konumKnockout.js ve Rx.js arasındaki fark nedir?
cevap
Steve (Knockout yaratıcısı) blogunda explained the difference:
Geçenlerde sahip ağır büyük bir proje üzerinde kullandı ve tasarımın aslında yönleriyle, JavaScript için Rx ile çok tanıdık Nakavt, aklımdaki Rx deneyimlerimle yapılmıştır.
nakavt gözlemci desen uygulanması ve Rx en arasındaki temel fark Nakavt otomatik özel fonksiyonel API olsa ön onları belirtmek zorunda kalmadan düzenli prosedürel koddan gözlenebilirlerin arasındaki ilişkileri ve bağımlılıkları çıkarttığı olduğunu. Ben çoğu geliştiriciler için tanıdık ve ulaşılabilir daha düzenli olarak Knockout kullanmak istedim düzenli prosedür/emir tarzı tarzı kodu kullanmak için Knockout.
Başka bir fark, Rx durumsuz akışları oluşturmak için en iyi duruma getirilmiş olan 'dir. numaralı telefondan önce bu ve onun fonksiyonel saflığı konusunda hevesliyim, ancak bir süre sonra garip çemberler arasından atlamak gibi hissettim ve durumun verimli şekilde UI komutlarını yönetmek için simüle edilmesi için ekstra yollar bulması gerekiyordu. Bu nedenle, Knockout'ta tüm gözlenebilirler durum bilgisi olarak ele alınabilir - örneğin her zaman en son değerini okuyabilirsiniz (bu arada önbelleğe alınır, bu da temel veri değişikliklerine kadar karar vermez). Nakavt HTML DOM elemanları ve şablonları kendi gözlenebilirleri bağlamak ve onları istediğiniz şekilde manipüle izin UI geliştirme içine Rx daha ileri gider oysa
Rx, etkinlik akışlarını oluştururken ileri yollarını Knockout daha ileri gider. Rx, modelinin ne yaptığı konusunda harika bir şeydi, ancak tam olarak ne kadar istediğim ortaya çıkmadıysa, zengin UI'ler oluşturmak istedim - dolayısıyla Knockout'un tasarımı.
:
RxJs olaylar ve web talepler gibi, asenkron akışları karşı operasyonlarını oluşturan bir araç sağlar ve gelişmiş senaryolar içerir akışları birleştirmek gibi (A ve B hem oluştuğunda, bu başlangıç, ama A veya B tekrar meydana gelirse iptal)
Nakavt Eğer bir model aracılığıyla kullanıcı arayüzü durumunu yönetmek için izin veren bir MVVM çerçeve olduğunu Bu işlevsellik haritaları. Bu, görünümünüzün mantığının görünümünüzden ayrılmasını sağlar.
- 1. Python'da {} ve [] arasındaki fark nedir?
- 2. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 3. $ arasındaki fark nedir? ve PowerShell
- 4. Fark() arasındaki fark nedir mustache.js
- 5. arasındaki fark nedir?
- 6. Java arasındaki fark nedir
- 7. arasındaki fark nedir?
- 8. arasındaki fark nedir?
- 9. app.doScript ve $ .evalFile arasındaki fark nedir?
- 10. gVim ve gVim arasındaki fark nedir?
- 11. isAlpha ve isLetter arasındaki fark nedir?
- 12. Control.Enter ve Control.GotFocus olayları arasındaki fark nedir?
- 13. .got ve .got.plt bölümü arasındaki fark nedir?
- 14. AutomationProperties.AutomationID ve AutomationProperties.Name arasındaki fark nedir?
- 15. Android'de getDir ve getFilesDir arasındaki fark nedir?
- 16. R içinde `=` ve `<-` arasındaki fark nedir?
- 17. uint ve System.UInt32 arasındaki fark nedir?
- 18. PropertyChangeListener ve VetoableChangeListener arasındaki fark nedir?
- 19. XSS'de IDREF ve IDREFS arasındaki fark nedir?
- 20. Cacerts ve keystore arasındaki fark nedir?
- 21. GPLv2 ve GPLv3 arasındaki fark nedir?
- 22. VarIsEmpty ve VarIsEmptyParam işlevleri arasındaki fark nedir
- 23. ActiveSupport'ta mattr_accessor ve cattr_accessor arasındaki fark nedir?
- 24. Hashtable ve Dictionary arasındaki fark nedir?
- 25. RoutedCommand ve RoutedUICommand arasındaki fark nedir?
- 26. MySQL'deki boolean ve bool arasındaki fark nedir?
- 27. Task.Factory.FromAsync ve BeginX/EndX arasındaki fark nedir?
- 28. WideChar ve AnsiChar arasındaki fark nedir?
- 29. PHP'de 'stripcslashes' ve 'stripslashes' arasındaki fark nedir?
- 30. AxInterop ve Interop arasındaki fark nedir?
Şimdi sadece Rx- ve Ko-Gözlemciler arasında köprü kurabileceğinizi belirtmek istedim. Bakınız: https://github.com/cburgdorf/Knockout-Rx/blob/master/app/App.ViewModels.SearchViewModel.js – Christoph