RequireJs require.config加载第三方模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011562107/article/details/88309960

require.config()加载的模块分两类,

一类是AMD模式的,即以define定义的模块,可以直接加载

// math.js

  define(function (){

    var add = function (x,y){

      return x+y;

    };

    return {

      add: add
    };

  });

      加载方法如下:

    // main.js

  require(['math'], function (math){

    alert(math.add(1,1));

  });

二、加载非规范的模块(shim的使用方式)     

     //  app.js

     function sayHello(name){

    alert('Hi '+name);

  }

     //  main.js

  require.config({

    shim: {

      'app': { //这个键名为要载入的目标文件的文件名,不能随便命名。
        exports: 'sayHello' //exports的值为my.js提供的 对外接口的名称
      }

    }

  });


  require(['app'], function(sayHello) {
    alert(sayHello())  
  })

      导出一个函数,意味着我们得到了一个javaScript类

      但是如果在my.js中写了很多function,整合成一个function有点麻烦,想直接导出?

      方法如下

    // app.js

  function sayHi(name){

    alert('Hi '+name);

  }

  function sayHello(name){

    alert('Hiello  '+name);

  }

    // main.js  

  require.config({
    shim: {
      app: {
        init: function() { //这里使用init将2个接口返回
          return {
            sayHi: sayHi,
            sayHello: sayHello
          }
        }
      }
    }
  });

  require(['app'], function(a) {
    a.sayHi('zhangsan');
    a.sayHello('lisi');
  });

参考:https://www.cnblogs.com/zhourunbest/p/5527557.html

猜你喜欢

转载自blog.csdn.net/u011562107/article/details/88309960