一.媒介:
用模塊寫代碼,為何要用模塊來寫代碼:ES6之前,在js中定義的統統,都是同享一個全局作用域的,跟着web運用變得複雜,如許做會引起如:定名爭執和安全問題、因而引入了模塊。
二.清晰一個觀點:
- export 和 export default 是ES6 內里的API(本文只引見ES6的)
- exports 和 model..exports 是node.js內里的API,更切確的說是Common.js里的(就和require 和 import 類似)
三.export
// a.js
export let a = 1 //輸出變量
export fn(){...} //輸出函數
export class Class{
constructor(a,b){
this.a = a;
this.b = b;
}
} //輸出類
fn2(){...} //定義一個函數
export fn2; //發起以這類在末端一致輸出的體式格局export
export {fn2 ,fn}; //導出多個變量,要有{}
export {fn2 as asFn2}; //導出時重定名,要有{}
// b.js
import {fn2} from 'a.js'; //export 的引入要加{},單個也要加;
import {fn2 , a , Class as Class1} from 'a.js' //引入多個要用 ‘,’離隔;
import * as example from 'a.js'; //引入全部模塊
example.a = 1; //運用模塊,在有許多須要引入時,發起這類要領;
四.export defalut(模塊的默許值)
// a.js
export default function(num1,num2){...} //導出默許值,只能導出一個
export let a = 1; //導出變量a
// b.js
import any from 'a.js'; //引入默許值,any 可所以恣意的名字,不必{}
import {a} from 'a.js'; //引入a ;
import any,{a} from 'a.js' //默許值必需放在非默許值前面
import {default as any , a} from 'a.js' //有重定名就要大括號包起來
總結:
export :
- 單個不必括號,多個要用{},as也要用{}; (由於export default 只能export 一個);
import
- 除了* as ,別的重定名都要用{}
- export 要用{}
- 既有export 和 export default時:import any,{a} from ‘a.js’ 默許寫前面
by:Beast 原創:轉載請聲明
以為對你有效,請點贊!迎接討論指導!