鍍金池/ 問答/數(shù)據(jù)庫  HTML/ 為什么ES6中的模塊功能是先import再from?是否有順暢的寫法

為什么ES6中的模塊功能是先import再from?是否有順暢的寫法

原問題:

在智能編輯器(如WebStorm)中使用ES6的模塊引入一個模塊,首先需要先import {} from 'fs';
之后再跳轉(zhuǎn)光標回到花括號{}中寫上需要的模塊,因為此時才有智能提示。

是否有什么方法可以不跳轉(zhuǎn)光標,順暢的寫模塊引入?


補充:

像ptyhon就是from xxx import xxx,這種設(shè)計可以規(guī)避掉跳轉(zhuǎn)光標的問題。提這個問題主要的目的是:

  1. 當(dāng)初國際化標準組織為什么設(shè)計成import from的格式
  2. 如何改善這個問題

關(guān)于如何改善這個問題,目前已經(jīng)找到在WebStorm中的解決方案,sf限制提問者回答時間,稍后會補充回答;
歡迎大家補充在其他編輯器中的解決方案與問題1;
感謝。

回答
編輯回答
命于你

如何優(yōu)化import模塊的輸入方式

在WebStorm中

Live Templates中添加一個模版,如下圖:

圖1

Abbreviation中鍵入關(guān)鍵字,Description是描述(可選),在Template Text中填入代碼模版。

Template Text 例子,可自行修改

import {$END$} from '$MODULE_VAR$';

應(yīng)用設(shè)置后,在編輯器中鍵入部分關(guān)鍵字,就可以從智能提示中看到剛剛設(shè)定的關(guān)鍵字了,按Tab鍵后,會出現(xiàn)import {} from '';,光標首先會在單引號中,輸入完畢后,會跳轉(zhuǎn)到花括號中。

圖片描述
圖片描述


在VS Code中

  • Windows: 文件 -> 首選項 -> 用戶代碼片段
  • Mac OS: Code -> 首選項 -> 用戶代碼片段

打開代碼片段后,會看到這樣的界面

圖片描述

選擇新建全局代碼片段文件或者指定語言建立,我的習(xí)慣是指定語言,防止污染其他語言的代碼片段

在TypeScript與JavaScript兩種語言中各添加一個自己的代碼片段,如下

{
    "import_module": {
        "prefix": "importfrom",
        "body": [
          "import {${2:moduleName}} from '${1:path}';",
          "" // 去除這行,就不會在插入import from同時在下方插入一個空白行了
        ],
        "description": "insert a import from"
    }
}

圖片描述

保存后,就可以愉快的使用關(guān)鍵字導(dǎo)入模塊啦~

參考資料:https://code.visualstudio.com...


2018年2月2日 15:48
編輯回答
命于你

webstorm有個自動引入的快捷方式,比方說有個組件是<Abc>,你在需要引入abc組件的js內(nèi),直接寫<Abc/>然后tab,webstorm會在頂層幫你自動import,并且from到該組件的位置,還是很便捷的,不知道和你說的是不是一會事兒

2018年1月24日 07:12
編輯回答
情已空

你這個問題把大家難倒了。。。

并沒有什么好的思路去解決這個問題,因為,不可能在確定庫之前,就智能提示庫中的模塊,電腦也不能知道你即將引入什么模塊呀。

你要上熟練的話,可以按順序自己手寫,不過還不如逆序書寫,有智能提示來的快

2018年4月15日 13:22
編輯回答
只愛你

你這問題問的,編輯器既不是你的大腦,也不是你肚子里的蛔蟲,在你寫from之前,鬼才知道你到底想引入哪個庫?不知道你引用哪個庫,那又怎么做代碼提示?

除非倒轉(zhuǎn)個順序,像python那樣,先寫引入哪個庫,再寫引入的變量。

2017年4月14日 19:52
編輯回答
毀了心

只要不智能提示就好了,如果從左到右的順序誰知道你要引入什么模塊。

2018年3月22日 20:11