ESModule-import用法

在这里插入图片描述

画龙点睛
本篇文章呢主要是介绍 ESModule的import用法
import
1、文件类型省略问题
import add from "./demo1.js"
form后面跟的是一个字符串采用相对路径“./”代表当前目录
"./demo1.js"的文件类型.js不能省略而在commjs中可以省略

2、index.js问题
"../demo2" => 写法错误
".demo2/index.js" 必须填写完整的项目名称 不能省略index.js ,后续会在webpack中介绍如何支持忽略index文件

3、在引用文件的时候不能省略"./" 否则会认为在使用第三方模块,这一点和commjs相同

4、文件引用
import {name} from "/04/demo/add.js" => 可以使用文件的路径加载模块

5、引用网上CDN模块
import cdn from 'http:url'
执行模块
在项目开发过程中仅仅是执行这个模块并不提取其中导出的成员,下面的两种写法仅供参考

1、 import {} from "./module.js"

2、import './module.js' //这种写法更为常见
提取全部模块
import * as mod "./module.js";//通过关键字 * as 

module.js所有的成员都会挂载到mod下面可用mod.的这个方式使用
模块路径
//假如说在项目开发过程中才能知道模块的路径,而import只支持存在文件的顶层,如下

//项目运行才知道模块路径
let modPath = './module.js';
import {name} from modPath // => error code  

//满足某些条件才加载模块 
if (true) {
    import { name } from "./module.js"
}

//动态导入模块

import提供一个全局import函数用来动态导出函数,返回的是一个promise对象可以链式调用

import ('./module.js').then(res => {
    console.log(res);
    res.methords()
})

导出命名成员和默认成员
模块导出命名成员和默认成员如下

let name = "loki";

let age = 20;

let season = "spring"

export { name, age };

export default season

解决方法共有两个,仅供参考

1、通过as

import { name, age, default as mod1 } from './demo1.js';

console.log(mod1);

2、优化写法

import mod2, { name, age } from "./demo1";

//mod2代表默认成员,name,age是demo1.js导出的成员

console.log(mod2);

以上呢就是导出模块,需要注意的事项,谢谢观看,如有不足,敬请指教

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值