首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Coding
V2EX  ›  问与答

JavaScript 为什么是 import ... from ...

  •  1
     
  •   zeyexe · 231 天前 · 2670 次点击
    这是一个创建于 231 天前的主题,其中的信息可能已经有所发展或是发生改变。

    JavaScript 为什么是 import ... from ...,而不是 from ... import ... 呢?

    如果是 from ... import ... 语法,到 import 部分的时候 IDE 就可以提示允许 import 的 module 了,基本只需要输入几个字母或者选择一下就可以了,而 import ... from ... 需要自己先知道想 import 的 module 的全名,每次写起来都要先去看一下定义。我为了利用 IDE 的提示功能,经常先写成 import * from 'SomeModule' ,再利用 IDE 提示把 * 改成真正的名字,感觉略别扭。

    到底这种设计是基于什么考虑的呢,和 Java、Python、Go 那些语言一样不好吗?

    28 回复  |  直到 2019-04-25 20:18:05 +08:00
        1
    dog   231 天前 via iPhone   ♥ 8
    毕竟有个 select x,x,x from xxx 的前辈…
        2
    wxsm   231 天前 via iPhone
    我觉得你说的很有道理,我也很苦恼这个。
        3
    InternetExplorer   231 天前
    我们不一样~
        4
    cutpictureboyxx   231 天前
    我也感觉此处 es 设计的一个瑕疵,感觉设计得有点蠢
        5
    ryougifujino   231 天前
    为了读起来更自然点吧??确实不方便。不过我现在很多时候靠先写 something,然后靠 webstorm 自动补全 `import {something} from xxx`
        6
    CallMeReznov   231 天前
    我请你们吃饭 和 请你们吃饭我
    意思区别不大吧?????

    而且 import 可以直接后面跟模块 而省略起 from 你也了解他的意思是要导入这个包 模块
    你如果 from 开头你写的是啥呢?
        7
    deepdark   231 天前 via Android
    感觉是跟 const xx = require('xxx')保持一致的
        8
    binaryify   231 天前   ♥ 1
    @CallMeReznov
    差别很大,from 开头编辑器才知道有什么可以导出的,不然就得先写 import {} from 'xxxModule' ,再补充里面内容否则都没有提示
    python 是同时支持 import xxxModule 和 from yyy import XXX 的
        9
    Cyron   231 天前   ♥ 1
    @CallMeReznov #6 是想要自动补全,不是语法
        10
    otakustay   231 天前
    要自动补全的搞个编辑器 snippet,主流编辑器肯定全部是有支持的
        11
    grewer   231 天前
    我用 ts 的时候 import , 99%情况下不用写 , ide 自动补全就完事了
        12
    FakeLeung   231 天前
    1. ts 直接敲函数,变量啥,就会自动导入了。
    2. vscode 有 import 的插件,先填写 module,再填写导出的东西。

        13
    ZhLTE   231 天前
    英语就是这么读的吧 介词短语后置
        14
    lzvezr   231 天前 via iPhone
    你这么一说,确实是有点别扭,回想一下我也比较喜欢直接 import *这样写
        15
    Justin13   231 天前 via Android
    确实,这点很烦。
    至于说可以自动导入的,那玩意很蠢,各种乱导入没遇到过么?
        16
    zqx   231 天前 via Android
    从来不手写 import 语句,都是实例化的时候自动填充好,vs code
        17
    zeyexe   231 天前
    @ZhLTE #13 直接 import 也行,java 那样 improt package.module 也挺好的,但就是 JS 目前这种情况就没法自动补全。
        18
    crackhopper   231 天前
    我一般都 import {} from ‘ xxx ’, 然后填写大括号里面内容。我觉得这个 snippet 展开一下,不费什么事儿。
        19
    Sapp   231 天前
    你们的编辑器,都不会自动引入的吗? 我都很久没手写过这个玩意了
        20
    vampuke   231 天前
    @Justin13 可以选从什么文件导入阿,基本没有手写过导入
        21
    zeyexe   231 天前
    @Sapp #19 你是怎么自动引入的,IntelliJ 的自动引入做得很好,WebStorm 就不行。
        22
    Lothar   231 天前
    18 楼 + 1
        23
    mooncakejs   231 天前
    import {} from 'xxx'
    再去补全 xxx
        24
    cozof   231 天前 via iPhone
    LINQ 为了解决这个问题就采用了 from 开头
        25
    sharkrice   231 天前
    呵呵,我刚刚才在脑内吐槽,上来就又看到一个
        26
    binux   231 天前 via Android
    自动引入早关了,tab 经常瞎匹配,手快就引入了,还得跳转删除
        27
    wly19960911   231 天前
    @binux #25 ctrl + z 不就好了,然后重新导入下。
        28
    Sparetire   231 天前 via Android
    snippets 就完了,读起来自然一点,当然 from import 也没啥问题,取舍而已
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2745 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 12:58 · PVG 20:58 · LAX 04:58 · JFK 07:58
    ♥ Do have faith in what you're doing.