1

Node方式导入导出

一个JavaScript文件,可以向外exprots无数个变量,函数,对象,但是require(); 的时候,仅仅需要 载入一次JS文件即可。 所以,无形之后,会增加一个顶层命名空间。

导入一个空模块,是一个空对象,一个模块就是一个对象。

导出方式:

  • exports, 导出整个式子
  • module.exports, 导出赋值部分

导入方式:

  • reuire()
// 导出一个变量
exports.a = 10;

// 导入该变量
let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// { a: 10 }

// 导出一个变量,直接需要变量值使用.
// module.exports = 'name';

// 导入该变量
let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// name

// 导出对象
module.exports = {
  name1: 123,
  name2: 456
}

// 导入该变量
let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// { name1: 123, name2: 456 }

// 导出对象
exports.msg = {
  name1: 1,
  name2: 2
}

// 导入该变量
let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// { msg: { name1: 1, name2: 2 } }

// 导出函数
exports.showMsg = function () {
}

// 导入该变量
// let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// { showMsg: [Function] }

// 在 引用结果 需要  通过  变量 引用对象 执行
// var b= require();
// b.showMsg();

// 导出函数
module.exports = function () {
}

// 导入该变量
let b = require('./export')

// 导入的形式 `console.log(b)`输出导入的值:
// [Function]

// 引入文件的 变量  直接执行

对象,函数常使用的导出方式:module.exports

对应
import 'helpers'
// 也称: require('···')
import Express from 'express'
// 也称: Express = require('···').default || require('···')
import { indent } from 'helpers'
// 也称: indent = require('···').indent
import * as Helpers from 'helpers'
// 也称: Helpers = require('···')
import { indentSpaces as indent } from 'helpers'
// 也称: indent = require('···').indentSpaces

export default function () { ··· }
// 也称: module.exports.default = ···
export function mymethod () { ··· }
// 也称: module.exports.mymethod = ···
export const pi = 3.14159
// 也称: module.exports.pi = ···

ES6和TS方式导入导出

导出:export
导入:import

注意点:

  • 导出和导入,除了使用as之外,变量名相同
  • 导出一个文件,默认是一个空对象
  • 直接使用导入文件定义变量名,直接执行
  • default导出,在导入的时候可以取任意变量名
  • export default默认导出模块不能使用{}对象导出
// 导出一个常量
export const foo = Math.sqrt(2)

// 导入
import { foo } from './export'
import * as Tools from './export' // 使用 Tools.foo

function myFunction () {}
// 导出已经声明的函数
export { myFunction }

导入
import { myFunction } from './export'

// 多个导出
export function cube(x: number): number {
    return x * x * x
}
const foo: number = Math.PI * Math.sqrt(2)
export { foo } // 导出多个

// 导入
import { cube, foo } from './export'

// 导出函数
export default function () {}
export default function fun () {}

// 导入
import myFunction from './export' // 可以取任意变量名
// 如果导出默认,定义函数名或者变量名,或者类名
// 导入的时候可以写和原来相同名字,也可以取任意变量名

// 导出类
export default class {}

// 导入
import Test from './export'

一个文件(模块)默认的导出只能有一个, 可以是类,函数, 对象等

导入整个模块的内容,在当前作用域插入export变量,包含export文件中全部导出绑定(包括export default):

// 导出多个模块
export function query () {}
export function update () {}

// 导入
import * as API from './export'

将整个模块作为附加功能导入, 但是不导入模块的导出成员:

import 'my-module'

alogy
1.3k 声望121 粉丝

// Designer and Developer


« 上一篇
Python_Scrapy
下一篇 »
数据科学