Ten komponent działa:
export class Template extends React.Component {
render() {
return (
<div> component </div>
);
}
};
export default Template;
Jeśli usunę ostatni wiersz, to nie zadziała.
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined
Chyba nie rozumiem czegoś w składni es6. Czy to nie musi eksportować bez znaku „default”?
javascript
ecmascript-6
stkvtflw
źródło
źródło
export default class Template extends React.Component {
Odpowiedzi:
Eksportowanie bez
default
oznacza, że jest to „nazwany eksport”. Możesz mieć wiele nazwanych eksportów w jednym pliku. Więc jeśli to zrobisz,następnie musisz zaimportować te eksporty, używając ich dokładnych nazw. Aby użyć tych składników w innym pliku, który musisz zrobić,
Alternatywnie, jeśli eksportujesz jako taki
default
eksport,Następnie w innym pliku importowania domyślny eksport bez użycia
{}
, tak,Może istnieć tylko jeden domyślny eksport na plik. W React konwencją jest eksportowanie jednego komponentu z pliku i eksportowanie go jako domyślnego eksportu.
Podczas importowania możesz zmienić nazwę domyślnego eksportu,
Możesz jednocześnie importować domyślny i nazwany eksport,
źródło
import React, {Component} from 'react';
.import RaisedButton from 'material-ui/RaisedButton';
zamiast tego Sprawiimport {RaisedButton} from 'material-ui';
to, że proces kompilacji będzie szybszy, a wydajność kompilacji mniejsza.import Binding from 'module/Binding'
większej wydajności niżimport {Binding} from 'module'
?Dodaj {} podczas importowania i eksportowania:
export { ... };
|import { ... } from './Template';
eksport →
import { ... } from './Template'
eksportuj domyślnie →
import ... from './Template'
Oto działający przykład:
⚡️ Robocza piaskownica do zabawy: https://codesandbox.io/s/export-import-example-react-jl839?fontsize=14&hidenavigation=1&theme=dark
źródło