我想知道是否要从另一个文件导入功能,是否也要导入功能文件中导入的所有文件?例如:
auth.js
import React from 'react';
import { AsyncStorage, View, Text, ScrollView, ... } from 'react-native';
import ModuleA from './modules/ModuleA';
import ModuleB from './modules/ModuleB';
import Module99 from './modules/Module99;
export const function1 = () => {
{/* some function using ModuleA */}
}
export const function2 = (param) => {
if(something)
{/* some function using Module99 */}
else
{/* some function using ModuleB */}
}
Screen.js
import React from 'react';
import { function2 } from '../auth';
export default class Screen extends React.Component {
{/* use function2 in some function or render */
}
我的问题是,当我从auth.js导入function2时,是否要导入auth.js中导入的所有模块和其他文件?或者我只是导入要由function2使用的模块。
此外,function2将根据参数使用不同的模块,方法是从Screen调用function2,Screen是否还会导入所有模块,或者仅导入Module99和moduleB,或者仅导入if else语句中的特定模块?
我已经阅读了很多有关如何在本机反应中导入的文档,但是仍然无法真正理解流程。 谢谢您的回答。
答案 0 :(得分:1)
通过执行import function2 from '../auth';
,您将什么都不导入,因为它不是默认导出。同样,不会自动将任何模块导入screen.js
中。
如果还需要在screen.js
如果您想在function2
中使用screen.js
,则需要这样导入
import { function2 } from '../auth';
您还可以使用import * as fromAuth from '../auth';
导入所有
用法:fromAuth.function2()
导入不带大括号{}
用于导入默认值。(已使用默认keyword
导出)
有4种出口类型:
以下是MDN的一些导入示例
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
查找更多详细信息here