zeyexe
V2EX  ›  问与答

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

  •  1
     
  •   zeyexe · Apr 25, 2019 · 5795 views
    This topic created in 2749 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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