zoukankan      html  css  js  c++  java
  • 模块化 (ESM) --- day02

    ESM: es6 module规范及其实现; -----> web统一的前端规范

      ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。

          CommonJS 和 AMD 模块,都只能在运行时确定这些东西。

    核心:

      独立作用域的

      export导出模块内数据     ---> export

      import引入模块数据       ---> 静态:import  只能放在文件开头     引申:   import()函数动态引入 ,返回 Module 对象

    使用:

      <script  type = "module">

        // 这段代码 当做一个模块使用

      </script>

      type = "module" 作用:

        声明这是一个模块

        具有独立的作用域

        使用 严格模式  “use strict”

    数据的导出: (es6 module 标准:web环境 和 nodejs环境 )

      export var a = 1;     <<===========>>  var a = 1; export { a };

      export var obj = { a:1 }  <<===========>>  var obj = { a:1 }; export { obj }

      export var funcName = function(){}   <<===========>> var funcName = function(){}' export { funcName };

      ----------------------------------------------------->  export { 表达式 }

      导出多个:  export { a, b, c, d}

      导出接口别名: export { a as s }      s 是 a 的别名

      导出默认接口: export default    ----->   export default  var a = 1;

    数据的引入: 

       import   先于模块内的其他模块执行( 会被js引擎静态分析)

      import variable from “文件路径”

      es6模块的实现是静态加载,import命令无法替代requrie的动态加载  -----> 提案中 引入了 import()  函数

      静态加载:  import

           编译时加载

           只能在顶层结构中,否则报错 (编译错误,放在动态语句中报错,如 if语句)

           获取的是模块接口的引用

      动态加载: import()   ( 解决动态加载的问题)

           运行时加载

           import() 返回一个 Promise 对象

           模块、非模块脚本都可以加载

           导入的是一个 Module 对象, 当做 then 回调的参数

        btn.onclick = async function(){

          let cssModule = await  import(“./m1.css”);  // 返回一个promise 对象

          let css = cssModule.default;

        }

    无关的补充:

      commonjs规范:一个文件是一个模块,module函数,每个文件都是module的实例;module.exports 数据的导出

      nodejs 的 require方法 是运行时加载的 

      import命令无法替代 require的动态加载功能   ---> import()来实现动态加载

      

  • 相关阅读:
    NYOJ 38布线问题
    NYOJ 106背包问题
    基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题
    HDOJ 2546饭卡(01背包问题)
    FBI树-数据结构(二叉树)
    二叉树遍历(flist)(二叉树,已知中序层序,求先序)
    求先序排列(二叉树已知中序和后序,求先序)
    滑雪(dp)
    Python——plot可视化数据,作业8(python programming)
    数据库SQL语言学习----左外连接,右外连接,外连接,自然连接的形象对比
  • 原文地址:https://www.cnblogs.com/baota/p/12381405.html
Copyright © 2011-2022 走看看