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

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

原問(wèn)題:

在智能編輯器(如WebStorm)中使用ES6的模塊引入一個(gè)模塊,首先需要先import {} from 'fs';
之后再跳轉(zhuǎn)光標(biāo)回到花括號(hào){}中寫(xiě)上需要的模塊,因?yàn)榇藭r(shí)才有智能提示。

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


補(bǔ)充:

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

  1. 當(dāng)初國(guó)際化標(biāo)準(zhǔn)組織為什么設(shè)計(jì)成import from的格式
  2. 如何改善這個(gè)問(wèn)題

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

回答
編輯回答
命于你

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

在WebStorm中

Live Templates中添加一個(gè)模版,如下圖:

圖1

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

Template Text 例子,可自行修改

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

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

圖片描述
圖片描述


在VS Code中

  • Windows: 文件 -> 首選項(xiàng) -> 用戶(hù)代碼片段
  • Mac OS: Code -> 首選項(xiàng) -> 用戶(hù)代碼片段

打開(kāi)代碼片段后,會(huì)看到這樣的界面

圖片描述

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

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

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

圖片描述

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

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


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

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

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

你這個(gè)問(wèn)題把大家難倒了。。。

并沒(méi)有什么好的思路去解決這個(gè)問(wèn)題,因?yàn)椋豢赡茉诖_定庫(kù)之前,就智能提示庫(kù)中的模塊,電腦也不能知道你即將引入什么模塊呀。

你要上熟練的話(huà),可以按順序自己手寫(xiě),不過(guò)還不如逆序書(shū)寫(xiě),有智能提示來(lái)的快

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

你這問(wèn)題問(wèn)的,編輯器既不是你的大腦,也不是你肚子里的蛔蟲(chóng),在你寫(xiě)from之前,鬼才知道你到底想引入哪個(gè)庫(kù)?不知道你引用哪個(gè)庫(kù),那又怎么做代碼提示?

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

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

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

2018年3月22日 20:11