1. 程式人生 > >對require和import的認識

對require和import的認識

        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” 三個方法,其他方法不載入