import *在Java中有什么作用?

时间:2018-11-15 13:38:14

标签: javascript reactjs

我正在浏览this repo on Github,并试图理解代码的工作方式

在这里,作者(或程序员)在多个地方提到过import *,所以我试图理解并了解import *的工作原理?

他在Game.js file of his repo中首先提到/写过这样的文字

import * as actions from '../actions';

在VS Code中,如果我使用命令单击'../actions,则会将我重定向到此文件-> index.js

然后在Index.js中,他们有这样的内容

import * as ActionTypes from './action-types';

当我单击./action-types时,它会将我重定向到此处action-types.js

我浏览了firefox文档,但对于第一个示例,例如一个示例,我无法清楚地理解它,action文件夹包含多个文件,以及如何从* .. / actions导入*作为操作;平均index.js文件

虽然我知道他已经使用actions.functionName()ActionType.TypeName调用/引用了函数

我的主要问题仍然存在

import * as actions from '../actions'; mean index.js如何归档?

3 个答案:

答案 0 :(得分:1)

js中的

Import是ES6的新语法,用于导入模块,其功能与require相同,但是更容易过滤模块中所需的内容

在您的示例中,您import * as actions from '../actions';../actions文件导入所有功能

const actions = require('../actions')

相同

但更容易管理您想要的内容

此语法不适用于所有浏览器,因此请确保将transpiler与babel或其他

结合使用

您也可以在python中看到此语法

答案 1 :(得分:1)

the import * as name syntax imports all  contents  of js files

例如: 如果要导入整个模块的内容并访问doAllTheAmazingThings函数

import * as myModule from '/modules/my-module.js';

比像

myModule.doAllTheAmazingThings();

这是docs

答案 2 :(得分:0)

在import语句中引用目录时,它将在该目录中查找并加载index.js文件。我通常在该目录下的分组对象中有导出类和函数,因此可以轻松访问它们:

例如在index.js中,我导出的内容如下:

{
    Class1,
    method1
}

其中每个都是这样导入的:

import Class1 from './Class1';

因此,他们只是将目录文件中的类/方法/ ...进行分组。

然后,您可以像这样轻松地访问它:

import { Class1, method1 } from './mymodule';

vs

import Class1 from './mymodule/Class1';