require和import的区别
之前没太关注的一个是小细节,随手整理一下:
| require/exports | import/export |
| require是Commonjs的规范 遵从commonjs的规范 | import是es6为js模块化提出的新的语法 import (导入)要与export(导出)结合使用 |
function test (args) {
// body...
console.log(args);
}
module.exports = {
test
}; let { test } = require('./a.js');
test('this is a test.'); | export function test (args) {
// body...
console.log(args);
}
// 默认导出模块,一个文件中只能定义一个
export default function() {...};
export const name = "lyn"; // _代表引入的export default的内容
import _, { test, name } from './a.js';
test(`my name is ${name}`); |
| 本质上,是将要导出的对象,赋值给module这个对象的exports属性,在其他文件中通过require这个方法来访问exports这个属性 可以说 输出的,是一个值的拷贝 | 输出的是值的引用 |
| 运行时加载 可以动态引入 | 静态引入 编译时就引入了 |
