對require和import的認識
阿新 • • 發佈:2018-12-20
require和import都是為了實現前端的模組化程式設計。import是ES6標準下的,對應於export,編譯時載入;而require是CommonJS規範下的,在node模組中常見,對應於module.exports,執行時載入。
Require:
Require是CommonJS的語法,CommonJS的模組是物件,輸入時必須查詢物件屬性。
// fs.js function stat(){ console.log("function stat"); } function exists(){ console.log("function exists"); } function readFile(){ console.log("function readFile") } module.exports = { stat:stat, exists:exists, readFile:readFile }
// CommonJS模組
let { stat, exists, readFile } = require('fs');
// 等同於
let _fs = require('fs');
let stat = _fs.stat;
let exists = _fs.exists;
let readfile = _fs.readfile;
整體載入fs模組(即載入fs所有方法),生成一個物件"_fs",然後再從這個物件上讀取三個方法,這叫“執行時載入”,因為只有執行時才能得到這個物件,不能在編譯時做到靜態化。
Import:
ES6模組不是物件,而是通過export命令顯示指定輸出程式碼,再通過import輸入。
// fs.js
function stat(){
console.log("function stat");
}
function exists(){
console.log("function exists");
}
function readFile(){
console.log("function readFile")
}
export {stat,exists,readFile}
import { stat, exists, readFile } from 'fs';
從fs載入“stat, exists, readFile” 三個方法,其他方法不載入