导入组件
多亏 webpack,此项目设置支持 ES6 模块。
¥This project setup supports ES6 modules thanks to webpack.
虽然你仍然可以使用 require() 和 module.exports,但我们建议你改用 import 和 export。
¥While you can still use require() and module.exports, we encourage you to use import and export instead.
例如:
¥For example:
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;
注意 默认导出和命名导出之间的区别。这是错误的常见来源。
¥Be aware of the difference between default and named exports. It is a common source of mistakes.
我们建议你在模块仅导出单个东西(例如,组件)时坚持使用默认导入和导出。这就是你使用 export default Button 和 import Button from './Button' 时得到的结果。
¥We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use export default Button and import Button from './Button'.
命名导出对于导出多个函数的实用程序模块很有用。一个模块最多可以有一个默认导出和任意多个命名导出。
¥Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like.
了解有关 ES6 模块的更多信息:
¥Learn more about ES6 modules:
绝对导入
¥Absolute Imports
你可以配置你的应用以支持使用绝对路径导入模块。这可以通过在项目的根目录中配置 jsconfig.json 或 tsconfig.json 文件来完成。如果你在项目中使用 TypeScript,你将已经有一个 tsconfig.json 文件。
¥You can configure your application to support importing modules using absolute paths. This can be done by configuring a jsconfig.json or tsconfig.json file in the root of your project. If you're using TypeScript in your project, you will already have a tsconfig.json file.
下面是一个 JavaScript 项目的示例 jsconfig.json 文件。如果文件不存在,你可以创建该文件:
¥Below is an example jsconfig.json file for a JavaScript project. You can create the file if it doesn't already exist:
{
"compilerOptions": {
"baseUrl": "src"
},
"include": ["src"]
}
如果你使用的是 TypeScript,则可以在项目的 tsconfig.json 文件的 compilerOptions 中配置 baseUrl 设置。
¥If you're using TypeScript, you can configure the baseUrl setting inside the compilerOptions of your project's tsconfig.json file.
现在你已经将项目配置为支持绝对导入,如果你想导入位于 src/components/Button.js 的模块,你可以像这样导入模块:
¥Now that you've configured your project to support absolute imports, if you want to import a module located at src/components/Button.js, you can import the module like so:
import Button from 'components/Button';
有关这些配置文件的更多信息,请参阅 jsconfig.json 参考 和 tsconfig.json 参考 文档。
¥For more information on these configuration files, see the jsconfig.json reference and tsconfig.json reference documentation.