• requirejs测试


    参考资料:http://www.ruanyifeng.com/blog/2012/11/require_js.html

    一、文件目录

     

    二、html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>require-js-test</title>
        <meta name="viewport" content="width=device-width,initial-scale=1, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui"/>
        <script data-main="js/main.js" src="js/require.js"></script>
    </head>
    <body>
    </body>
    </html>

    三、mainjs

    require.config({
     paths: {
      "jquery": "helper/jquery",
     }
    });
    require(["jquery"],function ($) {
        alert("jquery已经加载完毕");
    })

    或者另外一种写法

    require.config({
        baseUrl:"js/helper",
        paths: {
            "jquery": "jquery",
        }
    });
    require(["jquery"],function ($) {
        alert("jquery已经加载完毕");
    })

    四、在main中调用jquery,必须让jquery中先定义再返回,经过查找源码知:

    define( "jquery", [], function() {
            return jQuery;
        } );

    五、扩展,假设我在helper增加一个自己写的加法math.js,

    我想在main中调用,下面来看mathjs中代码,必须用return返回一个json,这样main.js才可以调用
    define(function(){
        function sum(a,b) {
            return a+b;
        };
        return{
            add:sum,
        };
    })

    下面来看main.js

    require.config({
        paths: {
            "jquery": "helper/jquery",
            "math":"helper/math"
        }
    });
    require(["jquery","math"],function ($,math) {
        $(".box").css("color","red");
        alert(math.add(1,2));
    })

     六、加载非规范的模块(针对没有用AMD规范写的js,想要在main.js中引用)

    理论上,require.js加载的模块,必须是按照AMD规范、用define()函数定义的模块。但是实际上,虽然已经有一部分流行的函数库(比如jQuery)符合AMD规范,更多的库并不符合。那么,require.js是否能够加载非规范的模块呢?

    回答是可以的。

    这样的模块在用require()加载之前,要先用require.config()方法,定义它们的一些特征。

    举例来说,underscore和backbone这两个库,都没有采用AMD规范编写。如果要加载它们的话,必须先定义它们的特征。

      require.config({

        shim: {

          'underscore':{
            exports: '_'
          },

          'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
          }

        }

      });

    require.config()接受一个配置对象,这个对象除了有前面说过的paths属性之外,还有一个shim属性,专门用来配置不兼容的模块。具体来说,每个模块要定义(1)exports值(输出的变量名),表明这个模块外部调用时的名称;(2)deps数组,表明该模块的依赖性。

    比如,jQuery的插件可以这样定义:

      shim: {

        'jquery.scroll': {

          deps: ['jquery'],

          exports: 'jQuery.fn.scroll'

        }

      }

    个性签名:别低头,王冠会掉,别后退,梦想会碎~~~~~
  • 相关阅读:
    Web开发之编码与解码、签名、加密与解密
    深入解析单例线程安全问题
    PL/SQL&存储过程||存储函数&触发器
    oracle
    子查询中的NULL问题
    springmvc适配器的应用
    MySQL
    Django rest framework(5)----解析器
    Django rest framework(4)----版本
    1. Django每日一码 之原生View源码
  • 原文地址:https://www.cnblogs.com/lily1010/p/5550002.html
Copyright © 2020-2023  润新知