模块化开发
  pdSZ68wVWgn2 2023年11月01日 41 0

1、模块化的发展过程

var moduleObj = {
    userName: 'zhangsan',
    fn: function () {
        console.log('hello world')
    }
}

使用方式

<html>
    <head>       
    </head>
    <body>
        <script src="a.js"></script>
        <script>
         moduleObj.fn()
        </script>
    </body>
</html>

立即执行函数的方式

通过立即执行函数的方式为模块提供私有空间

; (function () {
    var userName = 'lisi';
    function fn1() {
        console.log(userName);
    }
    function fn2() {
        console.log('hello world')
    }
    window.moduleObj = {
        fn1: fn1,
        fn2: fn2
    };
})()

2、模块化规范说明

CommonJS它是node.js中提到的一个规范。也就是说我们在写Node.js的时候,必须符合CommonJS的规范。

        CommonJS规范要求
        1、一个文件就是一个模块
        2、 通过module.exports导出成员项
        3、通过require函数加载模块
        4、每个模块都有单独的作用域。

AMD(Asynchronous Module Definition),翻译过来就是异步的模块定义规范。

 define('moduleA',['jquery','./moduleB'],function($,moduleB){
            return{
                fn:function(){
                    // $('p')

                }
            }
        })
        require(['./moduleA'],function(moduleA){
            moduleA.fn();
        })

3、ES Module基本使用

1、自动采用了严格模式
2、每个es module 都是运行在单独的私有的作用域中
3、`ES module`通过CORS的方式请求外部的JS模块,如果服务端不支持`CORS`,则会出现跨域的问题。
4、ES module的script标签会延迟执行脚本,类似于添加了defer.

4、导出的注意事项

1、注意语法的问题
2、通过export 对成员进行导出操作,导出的是成员的引用
3、导出的成员是只读的,那么我们导入了以后是不能对成员进行修改的。

5、导入的注意事项

1、import后面的from跟的是导入的文件的路径,并且是一个完整路径。
2、如果我们这里是执行某个模块,并不需要提取其中的成员
import {} from './module.js'
import './module.js
3、如果某个模块中导出的成员比较多,同时我们都需要这些导出的模块成员,
import * as m from './module.js'
4、如果需要进行动态的导入
import('./module.js').then(function(module) {
        console.log(module.)
   })
 5、在进行导出的时候,使用了export 和export default,导入import应该怎样进行处理?
 import title, { userName, userAge } from "./module.js";
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  f18CFixvrKz8   2024年05月20日   90   0   0 JavaScript
  fxrR9b8fJ5Wh   2024年05月17日   52   0   0 JavaScript
  2xk0JyO908yA   2024年04月28日   40   0   0 JavaScript
pdSZ68wVWgn2
作者其他文章 更多

2023-11-01

2023-11-01

2023-11-01

2023-11-01

2023-11-01