跳至主要内容

导入组件

此项目设置支持 ES6 模块,这要归功于 webpack。

虽然您仍然可以使用 require()module.exports,但我们鼓励您使用 importexport

例如

Button.js

import React, { Component } from 'react';

class Button extends Component {
render() {
// ...
}
}

export default Button; // Don’t forget to use export default!

DangerButton.js

import React, { Component } from 'react';
import Button from './Button'; // Import a component from another file

class DangerButton extends Component {
render() {
return <Button color="red" />;
}
}

export default DangerButton;

请注意 默认导出和命名导出之间的区别。这是一个常见的错误来源。

我们建议您在模块只导出一个东西(例如,一个组件)时,坚持使用默认导入和导出。当您使用 export default Buttonimport Button from './Button' 时,您会得到这样的结果。

命名导出对于导出多个函数的实用程序模块很有用。一个模块最多可以有一个默认导出,以及任意数量的命名导出。

了解更多关于 ES6 模块的信息

绝对导入

您可以配置您的应用程序以支持使用绝对路径导入模块。这可以通过在项目根目录中配置一个 jsconfig.jsontsconfig.json 文件来完成。如果您在项目中使用 TypeScript,您将已经有一个 tsconfig.json 文件。

下面是一个 JavaScript 项目的 jsconfig.json 文件示例。如果文件不存在,您可以创建它。

{
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
}

如果您使用的是 TypeScript,您可以在项目 tsconfig.json 文件的 compilerOptions 中配置 baseUrl 设置。

现在您已经配置了您的项目以支持绝对导入,如果您想导入位于 src/components/Button.js 的模块,您可以像这样导入模块

import Button from 'components/Button';

有关这些配置文件的更多信息,请参阅 jsconfig.json 参考tsconfig.json 参考 文档。