我正在浏览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
如何归档?
答案 0 :(得分:1)
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';