关于import ,export 命令

在CommonJS 中

// CommonJS模块
	let { stat, exists, readFile } = require('fs');

// 等同于
	let _fs = require('fs');
	let stat = _fs.stat;
	let exists = _fs.exists;
	let readfile = _fs.readfile;

而ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。

// ES6模块
import { stat, exists, readFile } from 'fs';

常用export形式

// 变量和常量
	export var firstName = 'Michael';
	export const year = 1958;
或者
	var firstName = 'Michael';
	const year = 1958;
	export  {firstName ,year  }
// 函数和类
	export function multiply(x, y) {
	  return x * y;
	};
// ----------------
function v1() { ... }
function v2() { ... }
export {
	  v1 as streamV1,
	  v2 as streamV2,
	  v2 as streamLatestVersion
};
用as 关键字可以换变量名,输出多次

注意写法:

// 报错
function f() {}
export f;

// 正确
export function f() {};

// 正确
function f() {}
export {f};

export default 命令

// export-default.js
export default function () {
  console.log('foo');
}
// import-default.js
import customName from './export-default';
customName(); // 'foo'

// 或者写成

function foo() {
  console.log('foo');
}

export default foo;

混合写法:

export default function (obj) {
  // ···
}

export function each(obj, iterator, context) {
  // ···
}

export { each as forEach };

import _, { each, forEach } from 'lodash';

合并多文件变量:

// constants/db.js
export const db = {
  url: 'http://my.couchdbserver.local:5984',
  admin_username: 'admin',
  admin_password: 'admin password'
};

// constants/user.js
export const users = ['root', 'admin', 'staff', 'ceo', 'chief', 'moderator'];
----------------
// constants/index.js
export {db} from './db';
export {users} from './users';
--------------
// script.js
import {db, users} from './constants/index';

猜你喜欢

转载自blog.csdn.net/xuxu_qkz/article/details/87855061