当前位置: 首页 > web >正文

ES6入门---第二单元 模块五:模块化

js不支持模块化

注意: 需要放到服务器环境

1、如何定义模块?

export  东西

例:1.js文件中

console.log('1模块加载了');//显示是否加载了
export const a =12;
export const b = 5;
export let c = 101;
const a=12;
const b=5;
const c=101;export {//可以起别名 as *** 也可以去掉a as aaa,b as banana,c as cup
}

 <script type="module">import {a, b, c} from './modules/1.js';console.log(a,b,c);</script>

起别名版import :

<script type="module">import {aaa, banana, cup} from './modules/2.js';console.log(aaa, banana, cup);</script>

补充 export default **  作用:引用时候可以不用加{ }

2、如何使用?
 在html文件里<script type="module"></script>

引入模块

import './modules/1.js';

【新增】*表示引用全部

 <script type="module">import * as modTwo from './modules/2.js';console.log(modTwo.aaa);</script>
 <script type="module">import mod,{show, sum, a, b} from './modules/4.js';
// show sum 是函数 let p1 = new mod.Person('老肖');console.log(p1.showName());show();sum();console.log(a,b);</script>

js文件可以引用另一个js文件里的东西 :格式同理

import:  特点
        a). import 可以是相对路径,也可以是绝对路径
            import 'https://code.jquery.com/jquery-3.3.1.js';
        b). import模块只会导入一次,无论你引入多少次
        c). import './modules/1.js';  如果这么用,相当于引入文件
        d). 有提升效果,import会自动提升到顶部,首先执行

             也就是说:不管放前面放后面都最先引入
        e). 导出去模块内容,如果里面有定时器更改,外面也会改动

  import()  类似node里面require, 可以动态引入, 默认import语法不能写到if、for之类里面

错误例:

 if(a==12){import {a} from './modules/1.js';}else{import {b} from './modules/2.js';}

正确例:
        返回值是个promise对象 

<script type="module">import('./modules/1.js').then(res=>{console.log(res.a+res.b);});</script>

 路径也可以动态

 <script type="module">let sign=1;function config(){switch(sign){case 1:return './modules/1.js';break;case 2:return './modules/2.js';break;}}import(config(1)).then(res=>{$(function(){$('body').css({background:'gray'})})});</script>

与promise结合版:

<script type="module">Promise.all([import('./modules/1.js'),import('./modules/2.js')]).then(([mod1,mod2])=>{console.log(mod1);console.log(mod2);})</script>

【ES2017】async  await

http://www.xdnf.cn/news/3817.html

相关文章:

  • 【Godot】使用 Shader 实现可配置圆角效果
  • 34.多点求均值的模拟信号抗干扰算法使用注意事项
  • word批量转pdf工具
  • Semaphore的详细源码剖析
  • 函数递归+函数栈帧(简)
  • chili3d调试10 网页元素css node deepwiki 生成圆柱体 生成零件图片
  • Go Web 后台管理系统项目详解
  • 文章记单词 | 第63篇(六级)
  • 解析MCUboot的实现原理和Image结构
  • 【Java学习笔记】作用域
  • FPGA----基于ZYNQ 7020实现EPICS通信系统
  • Linux线程同步机制深度解析:信号量、互斥锁、条件变量与读写锁
  • Python基本语法(lambda表达式)
  • 《Foundation 面板》
  • 数字化时代下,软件测试中的渗透测试是如何保障安全的?
  • 【MySQL】索引(重要)
  • ES6/ES11知识点 续二
  • 项目实战-25年美赛MCM/ICM-基于数学建模与数据可视化的动态系统模型
  • Free Draft Model!Lookahead Decoding加速大语言模型解码新路径
  • HTML01:HTML基本结构
  • AI入门:Prompt提示词写法
  • 字符串匹配 之 KMP算法
  • 【计网】互联网的组成
  • VSCode常用插件推荐
  • 神经网络发展的时间线——积跬步至千里
  • 比较 TensorFlow 和 PyTorch
  • 网狐旗舰大联盟组件源码私测笔记:结构分层、UI重构与本地实操全流程
  • 每日c/c++题 备战蓝桥杯(洛谷P1015 [NOIP 1999 普及组] 回文数)
  • 一些好玩的东西
  • [方法论]软件工程中的软件架构设计:从理论到实践的深度解析