为什么es6仅使用“导出默认值”响应组件工作?

这个组件工作:

export class Template extends React.Component { render() { return ( <div> component </div> ); } }; export default Template; 

如果我删除最后一行,它不起作用。

 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined 

我猜,我不明白在es6语法中的一些东西。 是不是必须导出没有符号“默认”?

default导出意味着它是一个“命名导出”。 您可以在一个文件中有多个命名导出。 所以如果你这样做,

 export class Template {} export class AnotherTemplate {} 

那么您必须使用其确切名称导入这些导出。 所以要在另一个文件中使用这些组件,你必须做的,

 import {Template, AnotherTemplate} from './components/templates' 

或者,如果您导出为这样的default导出,

 export default class Template {} 

然后在另一个文件中导入不使用{}的默认导出,就像这样,

 import Template from './components/templates' 

每个文件只能有一个默认导出。 在React中,它是从文件中导出一个组件的惯例,并且将其导出为默认导出。

您在导入时可以自由重命名默认导出,

 import TheTemplate from './components/templates' 

您可以同时导入默认和命名导出,

 import Template,{AnotherTemplate} from './components/templates'