• js 模块化


    1.模块化优点

    (1)可维护

    (2)可扩展

    (3)可复用

    (4)功能分治

    (5)按需使用模块

    2.模块化面临问题

    (1)如何安全的包装一个模块代码?

    (2)如何唯一标识一个模块?

    (3)如何优雅的把模块api暴露出去?

    (4)如何管理模块间的依赖关系?

    (5)何时加载模块?

    (6)何时执行模块?

    (7)何时使用模块的api?

    3.实现模块方式

    (1)使用对象

    把数据和方法封装到一个对象中。

    var module = {
        _currentPage: 0;
        pre: function(){
        // ...
        },
        next: function(){
        // ...
        }
        //...
    };

    (2)使用立即执行函数

    var module = (function(){
        var _currentPage = 0;
        var pre = function(){
           //...
        };
        var next = function(){
           //...
        };
        //...
        return {
             pre: pre,
             next:next
             //...
        }
    })();

    4.模块化规范

    (1)CommonJS规范

    服务端模块规范,node.js使用了这个规范。使用require()加载模块,加载完模块再调用模块的api,顺序执行的。

    (2)AMD规范

    Asynchronous Module Definition即异步模块定义。异步方式加载依赖的模块,模块加载完后回调执行依赖模块的语句,不影响后面语句的执行。

    被依赖的模块预先异步加载,预先执行,然后调用回调。

    require.js使用了这个规范。

    (3)CMD规范

     Common Module Definition即通用模块定义。预先加载所有模块,就近书写,延迟执行模块,并且是顺序执行的。AMD推崇依赖前置,CMD推崇依赖就近。

     sea.js使用了这个规范。

    https://segmentfault.com/a/1190000000733959

    http://www.cnblogs.com/lvdabao/p/js-modules-develop.html

  • 相关阅读:
    HashMap 的实现原理(1.8)
    HashMap 的实现原理(1.7)
    Java面试总结 -2018(补录)
    在java中写出完美的单例模式
    ArrayList实现原理分析
    Ngigx+Tomcat配置动静分离,负载均衡
    微信小程序——常用快捷键【四】
    Linux服务器下安装vmware虚拟机
    微信小程序——部署云函数【三】
    微信小程序——安装开发工具和环境【二】
  • 原文地址:https://www.cnblogs.com/fe-huahai/p/5649238.html
Copyright © 2020-2023  润新知