你可以创建 JavaScript 模块,在模块里你可以导出需要导出的东西,然后在其它的地方,你可以导入模块提供的东西。
创建模块
创建一个模块,可以放在一个单独的 js 文件里,比如 talk.js:
let greeting = 'hello' export { greeting }
现在,talk.js 就是一个模块,导出模块里的东西使用的是 export ,这里我们导出来变量 greeting 。
使用模块
使用模块就是导入模块提供的东西,创建一个 js 文件,名字是 index.js,在这个文件里:
import { greeting } from './talk' console.log(greeting)
执行上面的代码,会在控制台上输出 “hello”,这个值是在 talk 模块里导出的 greeting 表示的东西。在 index.js 里,我们用 import 导入了 talk 模块里导出的 greeting 。
在模块里导出多个东西
这样编辑一下 talk.js:
let greeting = 'hello' let goodbye = 'see ya ~' export { greeting, goodbye }
现在这个模块里导出了两样东西,greeting 与 goodbye 。
导入模块里的多个东西
再这样编辑一下 index.js:
import { greeting, goodbye } from './talk' console.log(greeting, goodbye) // hello see ya ~
在 index.js 里,导入了来自 talk 模块的 greeting 与 goodbye。
模块里的默认导出
模块里可以提供一个默认导出的东西,在 talk.js 里:
let greeting = 'hello' let goodbye = 'see ya ~' const greet = (name) => { return `hello ${name}.` } export { greeting, goodbye } export default greet
用 export default 导出了一个默认的东西,就是 greet 函数。
导入模块默认的东西
import greet, { greeting, goodbye } from './talk' console.log(greeting, goodbye) console.log(greet('ninghao'))
导入模块默认导出的东西不需要在它周围使用大括号({})。
使用别名
导出与导入的时候都可以使用别名。用的关键词是 as:
import greet, { greeting as g, goodbye as b } from './talk' console.log(g, b) console.log(greet('ninghao'))
参考资料
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statem...
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statem...