es6基礎0x019:模塊化

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'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章