3

对于这样的情况, /ACollectionOfTinyComponent/index.js

import Container from './Container';
export {
  Container,
};

所以 index.js 变成了一个目录,可以包含其他小部分,而不必一直写出每个 Component Name。所以在这种情况下,我们可以在另一个组件中导入一个组件,如下所示:

import {Container} from './ACollectionOfTinyComponent'

//then use Container in the code here

这是一个不好的做法吗?因为如果我启用了 airbnb linter,那么我得到了错误 linting

Prefer default export import/prefer-default-export

它要求我添加default,但这会导致编译错误

4

2 回答 2

2

我发现这是因为我index.js. 但是,如果我添加多个就可以了!例如,如果我这样做

import Container from './Container';
import Ezeewei from './Ezeewei';
export {
  Container,
  Ezeewei,
};

请注意,我又添加了一个Ezeewei.

然后 linting 规则将通过!

于 2017-12-18T19:15:49.090 回答
0

它要求我添加默认值,但这会导致编译错误

您必须使用错误的语法来导出默认值。

export { name1 as default, … };

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export#Syntax

import {Container}...这是一种不好的做法吗?

是的。如果您有一个组件(如类)的单个入口点,则应将其导出为默认值,而不是命名导出。该语言的设计者为默认导入和导出提供了一种特殊的语法,以将其作为主要用例进行推广。

http://2ality.com/2014/09/es6-modules-final.html#default-exports-are-favored

于 2017-12-18T20:23:09.340 回答