require和import的區別

2022-07-14 17:39:11 字數 892 閱讀 6980

es6標準: 模組以export/export detault指令匯出介面,以import引入模組。

commonjs規範: 使用require引入模組,使用module.exports/exports匯出介面。

在開發中一般使用babel,將es6轉成commonjs。

commonjs允許你動態載入require模組。甚至不需要賦值給某個變數之後再使用,比如:

require('./a')(); //

a模組是乙個函式,立即執行a模組函式

var data = require('./a').data; //

a模組匯出的是乙個物件

var a = require('./a')[0]; //

a模組匯出的是乙個陣列

你在使用時,完全可以忽略模組化這個概念來使用require,僅僅把它當做乙個node內建的全域性函式,它的引數甚至可以是表示式:

require(process.cwd() + '/a');

但是es6的import的則不同,它必須放在檔案開頭。它不會將整個模組執行後賦值給某個變數,而是只選擇import的介面進行編譯,這樣在效能上比require好很多。

import具有宣告提公升效果,會首先執行。所以最好不要混用importrequire。 import 是 es6 標準,如果可能,首先使用 import, 如果不行,就用require

因為es6 模組是標準,所以現在還是推薦使用import,避免未來不必要的更改。

參考**:

import和require的區別

node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。遵循規範 呼叫時間 本質 require exports 遵循 commonjs amd,只能在執行時確定模組的依賴關係及輸入 輸出的變數,無法進行靜態優化。用法只有以下三種簡單的寫法 const fs req...

import和require的區別

遵循規範 require 是 amd規範引入方式 import是es6的乙個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法 呼叫時間 require是執行時呼叫,所以require理論上可以運用在 的任何地方 import是編譯時呼叫,所以必須放在檔案開頭 本質require是賦值過程,其實r...

import和require的區別

node程式設計中最重要的思想就是模組化,import和require都是被模組化所使用。遵循規範 require 是 amd規範引入方式 import是es6的乙個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法呼叫時間 require是執行時呼叫,所以require理論上可以運用在 的任何地...