代码之家  ›  专栏  ›  技术社区  ›  Alwaysblue

import*在javascript中做什么?

  •  2
  • Alwaysblue  · 技术社区  · 6 年前

    我在浏览 this repo on Github 试图理解代码的工作原理

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

    先进的 Game.js file of his repo 他这样提过/写过

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

    在vs代码中,当我单击 '../actions 使用命令将我重定向到此文件-> index.js

    然后在index.js中,它们有这样的东西

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

    当我点击 ./action-types 它把我转到这里 action-types.js

    我浏览了firefox的文档,但是对于第一个例子,比如action文件夹包含多个文件,以及如何从“../actions”导入*作为actions;mean index.js文件,我无法清楚地理解

    当我得到他调用/引用函数时 actions.functionName() ActionType.TypeName

    我的首要问题是

    怎样做 import * as actions from '../actions'; mean index.js 文件?

    3 回复  |  直到 6 年前
        1
  •  1
  •   InitialCrow    6 年前

    Import 在js中是es6的新语法,用来导入一个模块 require 但是在一个模块中过滤你想要的东西比较容易

    在你的例子中 import * as actions from '../actions'; 您从中导入所有函数 ../actions 文件

    做同样的事 const actions = require('../actions')

    但它更容易管理你想要的东西

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

    在python中也可以看到这种语法

        2
  •  1
  •   Gökhan Musapaşaoğlu ム   6 年前
    the import * as name syntax imports all  contents  of js files
    

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

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

    而不是像

    myModule.doAllTheAmazingThings();
    

    这是 docs

        3
  •  0
  •   Jeroen    6 年前

    在import语句中引用目录时,它会在该目录中查找并加载index.js文件。我通常在一个分组对象中的目录下导出类和函数,这样就可以很容易地访问它们:

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

    {
        Class1,
        method1
    }
    

    如果每一个都是这样进口的:

    import Class1 from './Class1';
    

    所以他们只是将类/方法分组。在目录中的文件中。

    然后您可以很容易地访问它:

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

    import Class1 from './mymodule/Class1';