Birini diğerinin üzerinde kullanmanın herhangi bir performans avantajı var mı?
Mevcut yanıt import/export
hayırdır , çünkü mevcut tarayıcı motorlarının hiçbiri ES6 standardından uygulanmaz .
Bazı karşılaştırma çizelgeleri http://kangax.github.io/compat-table/es6/ bunu dikkate almaz, bu nedenle Chrome için neredeyse tüm yeşillikleri gördüğünüzde dikkatli olun. import
ES6 anahtar kelimesi dikkate alınmadı.
Başka bir deyişle, V8 dahil mevcut tarayıcı motorları alamıyor yeni bir JavaScript dosyası gelen ana JavaScript dosyası herhangi bir JavaScript yönergesi üzerinden.
( V8 ES6 şartnamesine göre bunu uygulayana kadar hala birkaç hata uzakta veya yıllarca uzakta olabiliriz.)
Bu belge ihtiyacımız olan şey ve bu belge de uymamız gereken şey.
Ve ES6 standardı, modülü (başlık) .h
dosyalarımız olduğu C programlama dilinde olduğu gibi modülü okumadan önce modül bağımlılıklarının orada olması gerektiğini söyledi .
Bu iyi ve iyi test edilmiş bir yapı ve eminim ki ES6 standardını yaratan uzmanlar bunu akılda tuttular.
Bu, Webpack veya diğer paket paketleyicilerin bazı özel durumlarda paketi optimize etmesini ve paketten gerekli olmayan bazı bağımlılıkları azaltmasını sağlar. Ancak mükemmel bağımlılıklarımız olduğunda, bu asla olmayacak.
import/export
Yerel desteğin yayına girmesi biraz zaman require
alacak ve anahtar kelime uzun süre hiçbir yere gitmeyecek.
Nedir require
?
node.js
Modülleri yüklemenin yolu budur . ( https://github.com/nodejs/node )
Düğüm, dosyaları okumak için sistem düzeyinde yöntemler kullanır. Kullanırken temelde buna güveniyorsunuz require
. JavaScript dosyasını / modülünü yüklemek için (son sisteme, Linux, Mac, Windows'a bağlı olarak) require
gibi bazı sistem çağrılarında uv_fs_open
sona erecektir.
Bunun doğru olup olmadığını kontrol etmek için Babel.js'yi kullanmayı deneyin ve import
anahtar kelimenin dönüştürüleceğini göreceksiniz require
.
node --experimental-modules index.mjs
import
Babil olmadan kullanmanıza olanak sağlar ve 8.5.0+ düğümünde çalışır. Ayrıca , npm paketlerinizi eski ES6 modülü olarak eskirequire
yolla geriye dönük uyumlulukla yayınlayabilir (ve göndermelisiniz) .