V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
Lxxyx
V2EX  ›  JavaScript

ES6 中, import 的写法貌似不利于编辑器的自动补全?

  •  
  •   Lxxyx · 2016-03-05 17:09:58 +08:00 · 4944 次点击
    这是一个创建于 2972 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ES6

    import xxx from './xxx'
    这样的话,得先知道模块里有啥。
    或者得先输入模块名,感觉略麻烦。

    Python

    from xxx import xxx

    感觉 Python 的写法更有利于 IDE 的自动补全。引用一些模块时,写起来也方便。

    12 条回复    2017-06-02 09:49:26 +08:00
    xuboying
        1
    xuboying  
       2016-03-05 17:19:11 +08:00 via Android
    IDE 可以帮你往左挪光标嘛
    xuboying
        2
    xuboying  
       2016-03-05 17:20:06 +08:00 via Android
    或者列出全部模块帮你补全 from ?
    bramblex
        3
    bramblex  
       2016-03-05 17:29:10 +08:00 via Smartisan T1
    知道模块名不是天经地义的么…

    你是不是还希望无歧义的时候完全不写模块名呀…

    这么一说,我可以在重构自己的语言的时候加上这种特性
    wittyfox
        4
    wittyfox  
       2016-03-05 18:49:26 +08:00 via Android
    是有点
    KuroNekoFan
        5
    KuroNekoFan  
       2016-03-05 20:33:26 +08:00 via iPhone
    import *不就好了
    jakes
        6
    jakes  
       2016-03-05 20:58:47 +08:00
    @bramblex 楼主的意思好像是先输入 import *(* 是某模块内的),由于不知道从哪个模块导入,不利于自动补全。
    wdhwg001
        7
    wdhwg001  
       2016-03-05 22:16:48 +08:00
    也不一定, ES6 的逻辑是…模块名是你肯定知道的,这样的话 IDE 可以帮你补全目录…
    mufeng
        8
    mufeng  
       2016-03-06 07:53:03 +08:00 via iPhone
    export function 这种, 引入的时候函数名可以随便定,每次都要翻来翻去看写错了没
    murmur
        9
    murmur  
       2016-03-06 09:54:50 +08:00
    实际上吧,现在的 js ide 都是全代码扫描,即便是 webstrom 这么牛 b 的 ide 也只是优先找可能是模块里的
    比如我写个$(xxx).w 那肯定要提示 width 因为 jquery 基本成了基本库了 即便是当前模块里没扫到 jquery 的引用也要按照 jquey 提示
    otakustay
        10
    otakustay  
       2016-03-06 13:15:33 +08:00 via iPhone
    没错, es 的语法设计甚少考虑 ide 是个事实,也许那帮家伙都是非 ide 党
    forty
        11
    forty  
       2016-07-06 12:08:46 +08:00
    确实如此, 2 种都支持就好了, 这个顺序其实不产生歧义。
    jsPop
        12
    jsPop  
       2017-06-02 09:49:26 +08:00   ❤️ 2
    @Lxxyx 非常赞成

    比如在 webStorm 里, `import { ... } from 'xxx';` 花括号里的内容需要在 from 'xxx' 补全之后才能得到.
    目前养成了个不太好的习惯, 就是先键入 `import {} from 'xxx'` 然后再跳回 `{ }` 里补完.. 😂

    如果你用的是 IDEA 或 WebStorm, 推荐你使用它的 Template 来配置一个模板, 非常方便, 以前写 Java 单测时学到的小技巧, js 里也能用


    具体设置如下:

    - Preference > Live Template > create javascript template
    - Set context as "Javascript"
    - abbreviation = "im" (or anything you prefer), description = "whatever"
    - template

    ```
    import {$exports$} from '$module$';
    ```

    - VERY IMPORTANT STEP: set the order of the placeholder via "edit variables" !!!! (注意 里面有一个小剪头, 可以调整占位区域的访问的先后顺序


    使用方法, 在 js 文件里, 打 `im` , 然后敲 Tab 键, 即可开始编辑, 这时, 光标应该会先置于 $module$ 处, 随后按 Tab 键回到 $exports$ 处, 再按 Tab 回到行尾.

    enjoy ;)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4741 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:59 · PVG 17:59 · LAX 02:59 · JFK 05:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.