İşte numaralar
- min + gzip 26k
- gzip 90k
- orijinal 450 + k
Ve React'in belgelerinde pek çok özellik yok. Neden bu kadar büyük?
Bunun hafif DOM'un uygulanması olduğunu hissediyorum. Ama emin olmak istiyorum.
İşte numaralar
Ve React'in belgelerinde pek çok özellik yok. Neden bu kadar büyük?
Bunun hafif DOM'un uygulanması olduğunu hissediyorum. Ama emin olmak istiyorum.
Yanıtlar:
React oldukça iyi! React'in göze batmayan en büyük kısmı muhtemelen olaylar sistemidir - React yalnızca kendi olay gönderme ve köpürme işlemini uygulamakla kalmaz, aynı zamanda tarayıcılarda yaygın olayları normalleştirir, böylece bu konuda çok fazla endişelenmenize gerek kalmaz. Örneğin, SelectEventPlugin , onSelect
tüm tarayıcılarda aynı şekilde davranan bir olay sağlayan yerleşik bir olay "eklentisidir" .
Sanal DOM uygulaması yanı kod iyi bir miktar sürer; performans optimizasyonu için çok fazla çaba harcanır, bu nedenle küçültülmemiş sürüm, işleme performansını ölçmek için bir araç olan ReactPerf'i içerir . DOM'u güncellerken, React, herhangi bir giriş seçimini sürdürmek ve mevcut kaydırma konumunu aynı tutmak gibi sizin için bazı kullanışlı şeyler de yapar.
React'in de birkaç başka numarası var. En iyilerinden biri, bir tarayıcı ortamınız olmasa bile bir bileşeni bir HTML dizesine dönüştürmeyi tam olarak desteklemesidir, böylece JS yüklenmeden önce bile çalışan bir sayfayı gönderebilirsiniz.
React'i neyle karşılaştırıyorsunuz? react-15.0.2.min.js
olduğunu 43k (gzipped)
, ancak jQuery 33k süre olduğunu ember-2.6.0.prod.js
olduğunu 363k (also gzipped)
. Açıkçası, bu çerçeveler tam olarak aynı şeyleri yapmıyorlar ama çok fazla örtüşüyorlar, bu yüzden karşılaştırmanın makul olduğunu düşünüyorum.
İndirme boyutu konusunda endişeleniyorsanız, JS kodunun buna katkıda bulunacağı konusunda fazla endişelenmem. Şu anda Stack Overflow sayfamın sağ tarafında gördüğüm bir reklam:
İndirme boyutu 95k - Bir sayfaya böyle bir görüntü eklemeyi iki kez düşünmezdim çünkü (performans konusunda endişelenmiş olsam bile) genellikle daha kazançlı olan birçok performansla ilgili düzeltilecek çok şey vardır.
Kısacası, React'in o kadar büyük olduğunu düşünmüyorum ve size yardımcı olmak için yaptığı birçok küçük şeyden ne kadar büyük olduğunu düşünüyorum. React'in kodunun küçük olması gerektiğinin bir nedeni olarak React'in küçük API'sinden bahsediyorsunuz, ancak daha iyi bir soru "React'in API'si sizin için yaptığı her şeye rağmen nasıl bu kadar basit olabilir?"
... ama bu tamamen ayrı bir soru. :) Umarım sorunuzu cevaplamışımdır - cevaplamadıysam mutlu olurum.
Birkaç düşünce .. Boyutuyla ilgili bazı endişelerim vardı, ama kullandıktan sonra şaka yapmayın, 5MB boyutunda olsaydı kullanırdım. Bu sadece o kadar iyi. Bununla birlikte, diğer kütüphanelere olan bağımlılığı olabildiğince azaltmaya karar verdim. İki şey için jquery kullanıyordum .. ajax ve oturum açtıktan sonra bir belirteç yanıtta olduğunda işleyecek olan otomatik ajax yanıtı ve istek işleme (göndermeden önce vb.) Ve ardından her ajax isteğinin onu daha önce Yetkilendirme başlığına eklediğinden emin olun. gönderme. Bunu süper küçük ve basit bir yerel javascript ile değiştirdim. Harika çalışıyor. Ayrıca _underscore kullanmaya çalışıyordum. Daha küçük ve daha hızlı olan lodash ile değiştirdim, ancak şu anda kullanmıyorum, bu yüzden tamamen kaldırabilirim.
İşte google'da jquery yerine yerel JS kullanan bazı alternatifleri olduğunu bulduğum birçok makaleden bir tanesi.
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/