本文介紹了Javascript(es2016) import和require用法和區(qū)別詳解,分享給大家,具體如下:
寫個(gè)簡(jiǎn)單js文件,假設(shè)名字為:lib.js 。 假設(shè)內(nèi)容如下:
export const sqrt = Math.sqrt;export function square(x) { return x * x;}export function diag(x, y) { return sqrt(square(x) + square(y));}這樣就可以在其他地方對(duì)lib中定義的屬性和方法進(jìn)行引用,引用方法有兩種,也就時(shí)import和require。
//方法一import { square, diag } from 'lib';console.log(square(11)); // 121console.log(diag(4, 3));//方法兒import * as lib from 'lib';square = lib.square;還可以設(shè)置默認(rèn)的導(dǎo)出信息,就需要崽lib.js中定義 export default {}。default后面可以接一個(gè)參數(shù),也可以接一個(gè)數(shù)組。書寫方法為:
//------ module1.js ------export default 123;//------ module2.js ------const D = 123;export { D as default };通常比較習(xí)慣用第一種。然后用import就可以得到這個(gè)數(shù)組或則參數(shù)。但是import只能用于靜態(tài)導(dǎo)入,就是必須在文件開(kāi)始的時(shí)候,在最上層就寫好。而require就可以實(shí)現(xiàn)動(dòng)態(tài)加載。
| 加載方式 | 規(guī)范 | 命令 | 特點(diǎn) |
|---|---|---|---|
| 運(yùn)行時(shí)加載 | CommonJS/AMD | require | 社區(qū)方案,提供了服務(wù)器/瀏覽器的模塊加載方案。非語(yǔ)言層面的標(biāo)準(zhǔn)。只能在運(yùn)行時(shí)確定模塊的依賴關(guān)系及輸入/輸出的變量,無(wú)法進(jìn)行靜態(tài)優(yōu)化。 |
| 編譯時(shí)加載 | ESMAScript6+ | import | 語(yǔ)言規(guī)格層面支持模塊功能。支持編譯時(shí)靜態(tài)分析,便于JS引入宏和類型檢驗(yàn)。動(dòng)態(tài)綁定。 |
const incrementCounter = function ({dispatch,state}){ dispatch(‘INCREMENT‘)}export default { incrementCounter}//requirelet myAction = require(‘xxxxx‘);myAction.default.incrementCounter()以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點(diǎn)
疑難解答