0x000 概述
模塊化是一個大型項目的必然趨勢。
0x001 命名導出
可以使用export
關鍵字,導出你要導出的東西,可以導出常量、變量、函數、類,
// export.js
export var var0 = 'var0' // 直接導出 var 聲明
export let let0 = 'let0' // 直接導出 let 聲明
export const const0 = 'const' // 直接導出 const 導出
export function func1() {} // 直接導出函數
export function* funcx() {} // 直接導出生成器函數
export class class0{} // 直接導出類
let variable = 'variable'
export {variable} // 先聲明後導出, 需要使用{} 包裹
function func2(){}
export {func2} // 先聲明後導出,需要使用 {} 包裹
function* funcx(){}
export {funcx} // 先聲明後導出,需要使用 {} 包裹
class class1{}
export {class1} // 先聲明後導出,需要使用 {} 包裹
export {class1 as Person} // 別名導出
0x002 命名導入
命名導入需要使用{}
包裹,可以同時導入多個命名導出
import {var0} from './export' // 導入 var0
import {let0} from './export' // 導入 let0
import {const0} from './export' // 導入 const0
import {func1} from './export' // 導入 func1
import {funcx} from './export' // 導入 funcx
import {class0} from './export' // 導入 class0
import {var0, let0} from "./export"; // 同時導入多個命令導出
import {Person as class1} from "./export"; // 導入後取別名
0x003 默認導出
默認導出可以使用default
關鍵字,可以匿名導出
export default 1 // 默認導出常量
export default function () {} // 默認導出
export default () => {}
export default function* () {}
export default class {}
0x004 默認導出
因爲默認導出導出的其實是匿名導出,所以導入的時候可以使用任意名字導入,並且無需使用{}
包裹
import num from './export'
import func from './export'
import arrowFunc from './export'
import generatorFunc from './export'
import class0 from './export'
0x005 全部導入
將一個模塊的所有導出都導入到別名中
import * as MyModule from './export'
0x006 重定向
將另一個模塊的東西當做當前模塊直接導出
export {var0} from './export'
export * from './export'