ich auf Material UI docs vor kurzem lesen:Module Import und Destrukturierung Leistungen
Beachten Sie, dass im obigen Beispiel verwenden wir:
import RaisedButton from 'material-ui/RaisedButton'
statt
import {RaisedButton} from 'material-ui'
Dies wird y machen unser Build-Prozess schneller und Ihre Build-Ausgabe kleiner.
Früher habe ich gedacht, dass es genau das gleiche war, aber eigentlich bedeutet dies, dass die zweiten Leitungen juste wie ist:
import materialUI from 'material-ui'
const {RaisedButton} = materialUI
Und es wird genau das gleiche Bündel direkt produzieren?
Ich habe einige Tests, Bündel Größe verwenden unterschiedliche combinaisons des Imports mit 2 Dateien vergleichen:
index.js:
import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'
import file from './otherFile.js'
console.log(RaisedButton)
console.log(file)
otherFile.js
import RaisedButton from 'material-ui/RaisedButton'
// or import {RaisedButton} from 'material-ui'
export default RaisedButton
Die Ergebnisse sind recht wie erwartet mit nur import RaisedButton from 'material-ui/RaisedButton'
das bündel wird so etwas wie 24k LoC (material-ui lasten React abhängdenci es). Unter Verwendung import {RaisedButton} from 'material-ui'
, in einer oder beiden Datei (en), wird das Bündel so etwas wie 57k LoC sein.
Meine Frage bezieht sich hauptsächlich auf Leistungen und Best Practices, mit einer kleinen Verwendung von Material-UI sollte ich immer importieren from 'material-ui/ComponentName
, aber wenn ich eine Menge Material-UI-Komponenten auf ein größeres Projekt verwenden, wird es nicht auswirken Bundle Größe, wenn ich import {Comp1, Comp2, Comp3} from 'material-ui'
als das gesamte Paket wird nur einmal im Bündel?
Ok danke für deine Klarstellungen. Ich wollte auf jeden Fall sichergehen, dass nichts mehr im Bündel enthalten wäre. – Cohars