一、默认导出(default export)
// 1.一个模块只能有一个默认导出, 对于默认导出, 导入的名称可以和导出的名称不一致, 这对于导出匿名函数或类非常有用。
<!---- page.js ---->
export default function () {
return '默认导出'
}
export function setName() {
return name + 'Tao'
} <!---- main.js ---->
// 只导出默认的导出
import myFunc from '@/assets/page.js' // 混合的导出, 默认的导出和其他的导出
import defaultModel, { setName } from '@/assets/js/page' // 或者导出所有
import * as page from '@/assets/js/page'
二、名字导出(name export)
// 1.名字导出可以在模块中导出多个声明
<!---- page.js ---->
export const name = 'Alan'
export function setName() {
return name + 'Tao'
}
export function getName() {
return name
}
// 2.也可以直接导出一个列表
function setName2() {
return name + 'Tao2'
}
function getName2() {
return name
}
export { setName2, getName2 } <!---- main.js ---->
// import 根据变量名称导入
import { setName , getName} from '@/assets/js/page' // import 导入整个模块
import * as page from '@/assets/js/page'
console.log(page.getName()) // Alan
console.log(page.setName()) // Alan Tao
三.解决导出命名冲突的问题,重命名的方法解决方法
// 这两个模块都会导出以`flip`命名的东西。
// 要同时导入两者,我们至少要将其中一个的名称改掉。
import {flip as flipOmelet} from "one.js"
import {flip as flipHouse} from "two.js"