require與import的區別
阿新 • • 發佈:2019-01-10
第一、兩者的載入方式不同,require是在執行時載入,而import是在編譯時載入
require('./a')(); // a模組是一個函式,立即執行a模組函式
vardata=require('./a').data; // a模組匯出的是一個物件
var a =require('./a')[0]; // a模組匯出的是一個數組 ======> 哪都行
import $ from'jquery';
import * as _ from'_';
import {a,b,c} from'./a';
import {default as alias, a as a_a, b, c} from'./a'; ======>用在開頭
第二、規範不同,require是CommonJS/AMD規範,import是ESMAScript6+規範
第三、require特點:社群方案,提供了伺服器/瀏覽器的模組載入方案。非語言層面的標準。只能在執行時確定模組的依賴關係及輸入/輸出的變數,無法進行靜態優化。
import特點:語言規格層面支援模組功能。支援編譯時靜態分析,便於JS引入巨集和型別檢驗。動態繫結。