从另一个文件反应本机导入功能

Cha*_*ras 2 javascript import reactjs react-native

我想知道如果我从另一个文件导入一个函数,我是否也导入了该函数文件中导入的所有文件?例如:

认证.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 */}
}
Run Code Online (Sandbox Code Playgroud)

屏幕.js

import React from 'react';
import { function2 } from '../auth';

export default class Screen extends React.Component {
    {/* use function2 in some function or render */
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我从 auth.js 导入 function2 时,我是否导入了在 auth.js 中导入的所有模块和其他文件?或者我只是导入了 function2 将使用的模块。

此外,function2 将根据参数使用不同的模块,通过从我的 Screen 调用 function2,我的 Screen 是否也会导入所有模块,或者只是 Module99 和 moduleB,或者只是 if else 语句中的特定模块?

我已经阅读了很多关于导入如何在 react native 中工作的文档,但仍然无法真正理解流程。谢谢大家的回答。

Shi*_*vam 7

通过这样做,import function2 from '../auth';您不会导入任何内容,因为它不是默认导出。也不会自动导入任何模块screen.js。如果您还需要在screen.js

如果你想function2screen.js你需要像这样导入它

import { function2 } from '../auth';
Run Code Online (Sandbox Code Playgroud)

您也可以使用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";
Run Code Online (Sandbox Code Playgroud)

在此处查找更多详细信息