【发布时间】:2016-04-07 00:58:01
【问题描述】:
我知道我们可以导入所有具有别名的命名模块,如下所示,
import * as name from "module-name";
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import
实际上,我在 A.js 中重新导出了我的模块,并且在 B.js 中继承了相同的模块。 PFB。现在,它是两级继承,所以导入命名模块没什么大不了的。但是,当我将其提升到 5 级继承(A -> B -> C -> D -> E)时,我需要导入所有文件中的所有命名模块并需要执行(重新)导出相同的操作在所有。而不是这样做,
- 有没有其他方法可以将所有命名模块的范围复制到所有级别而不重复轮子(导入和导出)
- 这个设计的背后是让它们遵循 Opps 概念,避免重复声明相同的模块。
A.js
import React from 'react';
import I18n from 'i18n-js';
import m1 from 'module1';
import m2 from 'module2';
export default class A extends React.Component {}
export {React, I18n, m1, m2)
B.js
import BaseComponent from './A';
import {React, I18n, m1, m2) from './A;
export default class B extends A {}
有什么方法可以导入所有没有别名的命名模块,如 import {*} from './A'(而不是 B.js 中的第二个)
【问题讨论】:
-
1.否 2. 为什么要重新导出全局可用的模块?
-
例如:如果我没有在 A.js 中重新导出 I18n,我不能在 B.js 中使用它。但是,我可以在 B.js 中导入这一行(从 'i18n-js' 导入 I18n;)后使用 I18n。我不想这样做。
-
“我不想这样做。” --- 因为...?
-
我很困惑为什么你要重新出口你刚进口的东西..这没有意义!您上面关于说您不能在 B 中使用相同模块的评论似乎不正确
-
"100 个组件 * 每个最少 10 个导入 = 1000 * 2 = 最终 js 中的 2000 行。" --- 这个假设是不正确的。如果您的问题与构建生产工件及其大小有关 - 请相应地更改问题并删除所有不相关的内容。
标签: javascript reactjs