zoukankan      html  css  js  c++  java
  • 初始AMD和Common.js

    其实就是为了多个库可以良好的合作的指定的规范

    AMD---require.js Asynchronous Module Definition (AMD)
    Here’s module foo with a single dependency on jquery:

    //    filename: foo.js
    define(['jquery'], function ($) {
        //    methods
        function myFunc(){};
    
        //    exposed public methods
        return myFunc;
    });
    

    第一部分是定义一个存放依赖的数组,第二部分是放当依赖可以被正常执行之后的回调函数

    //    filename: foo.js
    define(['jquery', 'underscore'], function ($, _) {
        //    methods
        function a(){};    //    private because it's not returned (see below)
        function b(){};    //    public because it's returned
        function c(){};    //    public because it's returned
    
        //    exposed public methods
        return {
            b: b,
            c: c
        }
    });
    

    多个依赖库的话,注意回调函数的参数,要对应好,如果我们将$换成$$的话,之后使用就只能使用$$的


    Common.js---和node的写法很像

    //    filename: foo.js
    
    //    dependencies
    var $ = require('jquery');
    
    //    methods
    function myFunc(){};
    
    //    exposed public method (single)
    module.exports = myFunc;
    
    //    filename: foo.js
    var $ = require('jquery');
    var _ = require('underscore');
    
    //    methods
    function a(){};    //    private because it's omitted from module.exports (see below)
    function b(){};    //    public because it's defined in module.exports
    function c(){};    //    public because it's defined in module.exports
    
    //    exposed public methods
    module.exports = {
        b: b,
        c: c
    };
    

    UMD:Universal Module Definition

    (function (root, factory) {
        if (typeof define === 'function' && define.amd) {
            // AMD
            define(['jquery'], factory);
        } else if (typeof exports === 'object') {
            // Node, CommonJS-like
            module.exports = factory(require('jquery'));
        } else {
            // Browser globals (root is window)
            root.returnExports = factory(root.jQuery);
        }
    }(this, function ($) {
        //    methods
        function myFunc(){};
    
        //    exposed public method
        return myFunc;
    }));
    
    (function (root, factory) {
        if (typeof define === 'function' && define.amd) {
            // AMD
            define(['jquery', 'underscore'], factory);
        } else if (typeof exports === 'object') {
            // Node, CommonJS-like
            module.exports = factory(require('jquery'), require('underscore'));
        } else {
            // Browser globals (root is window)
            root.returnExports = factory(root.jQuery, root._);
        }
    }(this, function ($, _) {
        //    methods
        function a(){};    //    private because it's not returned (see below)
        function b(){};    //    public because it's returned
        function c(){};    //    public because it's returned
    
        //    exposed public methods
        return {
            b: b,
            c: c
        }
    }));
    
  • 相关阅读:
    微信小程序学习心得
    微信小程序分类的实现
    Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
    Vue中封装axios组件实例
    使用creata-react-app脚手架创建react项目时非常慢的问题
    Javascript的对象
    vue中上拉加载数据的实现
    Vue中键盘事件
    vant学习网址
    字符串,字典,数组写入本地文件和从本地文件读取
  • 原文地址:https://www.cnblogs.com/cyany/p/9175378.html
Copyright © 2011-2022 走看看