React, küçük API'sı neden bu kadar büyük dosyalanır? | tutuappapks.com
min + gzip 26k
orijinal 450 + k
React, dokümantasyonunda pek çok özelliğe sahip değildir. Neden bu kadar büyük?
Hafif DOM'nin uygulanması olduğunu hissediyorum. Ama emin olmak istiyorum.
Kaynağa bir bakıp ne yaptığını gördün mü? Faydalı ipucu, küçültülmüş versiyona bakma. - Mr Lister
Kod yazmadan önce sormaya karar verdim. Reaksiyonu kullanmayı planladığım halde, yine de orada dalış yapacağım;) - Eldar Djafarov
26k hiç de büyük değil .. - B T
İnsanlar tepkilerin büyük olmadığını söylüyor. Evet, reactjs'nin kendisi çok küçüktür (16.1.1 sürümü için 6.41KB), ancak React'ın bir ReactDOM çalışması gerektirdiğini ve ReactDOM'in 92.4KB boyutuna sahip olduğunu unutmayın. - Dinh Tran
React biraz var! React'ın en büyük nonobvious bölümü muhtemelen olay sistemi - React yalnızca kendi olaylarını gönderen ve bubbling'i uygulamakla kalmaz, aynı zamanda tarayıcılar arasındaki ortak olayları normalleştirir, böylece bu konuda endişelenmenize gerek kalmaz. Örneğin, SelectEventPlugin sağlayan bir yerleşik "eklenti" onSelect Tüm tarayıcılarda aynı şekilde davranan olay.
sanal DOM Uygulamada iyi bir miktar kod alınıyor; performans optimizasyonu için çok fazla çaba harcamaktadır, bu nedenle, unremified sürümü şunları içerir: ReactPerfrender performansının ölçülmesi için bir araçtır. DOM'ı güncellemede React, herhangi bir giriş seçimini sürdürmek ve mevcut kaydırma konumunu aynı tutmak gibi bazı kullanışlı şeyler de yapar.
React ayrıca kolundaki birkaç başka numaraya da sahiptir. En iyilerinden biri, bir tarayıcı ortamınız olmasa bile bir HTML dizgisine bir bileşenin oluşturulmasını tam olarak desteklemesidir, böylece JS yüklenmeden önce bile çalışan bir sayfayı aşağıya gönderebilirsiniz.
React'ı karşı ile karşılaştırmak nedir? react-15.0.2.min.js olduğu 43k (gzipped)ama jQuery 33k iken ember-2.6.0.prod.js olduğu 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 bulunmasından endişe etmem. Şu anda Stack Overflow sayfamın sağ tarafında gördüğüm bir reklam var:
İndirme boyutu 95k - Ben bir sayfada bir görüntü dahil olmak üzere iki kez düşünemem çünkü (performans hakkında endişeliysem bile) genellikle daha fazla performansla ilgili daha fazla düzeltme yapmak için performansla ilgili birçok şey vardır.
Kısacası, React'ın o kadar büyük olduğunu ve ne kadar büyüklükte olduğunu size yardımcı olmak için pek çok küçük şeyden geldiğini düşünmüyorum. React'un küçük API'sini React'ın kodunun küçük olması için bir neden olarak görüyorsunuz, ancak daha iyi bir soru, "React'un API'si sizin için yaptığınız her şey için çok basit olabilir mi?"
… Ama bu tamamen ayrı bir soru. :) Umarım sorunuza cevap verdim - eğer yapmazsam büyümek için mutluyum.
Sorumu tamamen cevapladın. Tepki harika. Onu mobil için kullanmayı düşünüyorum, bu yüzden boyut önemlidir. Sadece ne olduğu hakkında pek fazla bilgi yok. Ve ben kullanabileceğim daha fazla hile olduğunu düşünüyorum :) Ben jquery şeylerden kurtulmak hissediyorum. Ve paulmillr / exoskeleton tam zamanında - Eldar Djafarov
Tamamen farklı uygulama oluşturma konseptinde kazıyorum. Kontrol vimeo.com/78151404 ve github.com/component/component - jQuery'yi hiç kullanamayanları kullanarak ve jsxtransformations ile güzel oynarlar. Ve React en zor iş yapar - diğer her şey (Modeller, rutings, sunucu iletişimi) mikro bileşenler tarafından karşılanabilir. - Eldar Djafarov
Not, boyutun kesinlikle son derece önemli olduğu Facebook'un mobil web sitesinde React kullanıyoruz :) - Vjeux
@lightblade Um ... hayır. Bellek kullanımı, kodunuzun kaç tane tahsisatına bağlı olduğuna bağlıdır. React, tahsislerden kaçınmak için çok uğraşır. - Dan Abramov
@ 1nfiniti Okay, iki buçuk yıldan beri yeni sayılar ile güncellendi. - Sophie Alpert
İşte, google'da birçoğu, jQuery üzerinden yerel JS'yi kullanan bazı alternatiflerin bulunduğunu öğrendim.
youmightnotneedjquery.com - Jo VdB
Birden fazla tarayıcıyı hedefliyorsanız, jQuery'nin özel bir sürümünü yalnızca kullandığınız parçalarla oluşturabilirsiniz - Dan Heberden
hahah çabuk bozuldu - Tosh
Yerel kullanıcı hesabı c # ve .NET 2.0 oluşturma Yumuşak klavye EditText'in yarısını gizler R için önceki ayın başlangıç ​​tarihini ve bitiş tarihini alma Tarayıcının HTML5 Yerel Depolama'yı destekleyip desteklemediği nasıl tespit edilir Node.js rmdir özyinelemeli mi? Boş olmayan dizinlerde çalışacak mı? Veritabanında Varlık Çerçeve Kodu-ilk varsayılan verileri Yakalanmamış ReferenceError: React tanımlanmadı