之前没太关注的一个是小细节,随手整理一下:
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这个属性 可以说 输出的,是一个值的拷贝 | 输出的是值的引用 |
运行时加载 可以动态引入 | 静态引入 编译时就引入了 |