首頁  >  文章  >  web前端  >  比較Javascript中import和require的區別

比較Javascript中import和require的區別

巴扎黑
巴扎黑原創
2017-08-15 10:19:001938瀏覽

本篇文章主要介紹了Javascript(es2016) import和require用法和區別詳解,具有一定的參考價值,有興趣的可以了解下

本文介紹了Javascript(es2016) import和require用法和差異詳解,分享給大家,如下:

寫個簡單js文件,假設名字為:lib.js 。 假設內容如下:


export const sqrt = Math.sqrt;
export function square(x) {
 return x * x;
}
export function diag(x, y) {
 return sqrt(square(x) + square(y));
}

這樣就可以在其他地方對lib中定義的屬性和方法進行引用,引用方法有兩種,也就時import和require。


//方法一
import { square, diag } from 'lib';
console.log(square(11)); // 121
console.log(diag(4, 3));
//方法儿
import * as lib from 'lib';
square = lib.square;

也可以設定預設的匯出訊息,就需要在崽lib.js中定義 export default {}。 default後面可以接一個參數,也可以接一個陣列。書寫方法為:


 //------ module1.js ------
export default 123;

//------ module2.js ------
const D = 123;
export { D as default };

通常比較習慣用第一種。然後用import就可以得到這個陣列或則參數。但是import只能用於靜態導入,就是必須在文件開始的時候,在最上層就寫好。而require就可以實作動態載入。

載入方式 規格 #指令 特點
#執行階段載入 CommonJS/AMD require 社群方案,提供了伺服器/瀏覽器的模組載入方案。非語言層面的標準。只能在執行時確定模組的依賴關係及輸入/輸出的變量,無法進行靜態最佳化。
編譯時載入 ESMAScript6+ #import 語言規格層面支援模組功能。支援編譯時靜態分析,便於JS引入宏和型別檢驗。動態綁定。


const incrementCounter = function ({dispatch,state}){
 dispatch(‘INCREMENT‘)
}
export default {
 incrementCounter
}
//require
let myAction = require(‘xxxxx‘);
myAction.default.incrementCounter()

以上是比較Javascript中import和require的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn