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'

followWinter
1.5k 声望82 粉丝

暂时没有