zoukankan      html  css  js  c++  java
  • Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法

    js代码越写越多,一个文件肯定是不够用的,必须分成多个文件,依次加载,这样加载的缺点就是加载的时候,浏览器会停止网页渲染。加载的文件越多,网页失去响应的时间就越长,其次,由于js之间的依赖关系,必须保证js的加载顺序。
    require.js的出现,就解决了这两个问题:

    • 实现js文件的异步加载,避免网页失去响应;
    • 管理模块之间的依赖性,便于代码的编写和维护

    require.js的加载

    先去官网下载最新的版本,加载完成后,加载到html页面
    async="true"是设置文件异步加载 defer是ie兼容
    <script src="js/require.js" async="true" defer ></script>

    加载require.js以后,下一步就要加载我们自己的代码了。require.js默认的文件名后缀名是js,所以可以把main.js简写成main

    data-main="js主模块的路径”
    

    在这里插入图片描述
    员工A封装的求两个数的和的函数 add.js
    遵从AMD规范
    声明模块,暴露模块

    //当前模块,依赖别的模块开发
    define(["mul"], function (mul) {
      function addFunc(x, y) {
        return x + y;
      }
    
      //新的函数 两个数的积和两个数的和 求和
      function xxx(x, y) {
        return addFunc(x, y) + mul.mul(x, y);
      }
    
      function show() {
        console.log("hello world");
      }
    
      //对外暴露
      return {
        addOut: addFunc,
        show: show,
        xxx: xxx,
      };
    });
    

    员工B封装的求两个数的成绩 mul.js

    define(function () {
      function mul(x, y) {
        return x * y;
      }
    
      function show() {
        console.log("hello world mul模块");
      }
      return {
        mul: mul,
        show: show,
      };
    });
    

    主模块的写法

    计算两个数
    使用A同学的模块,通过AMD规范引入

    • 第一种:引入模块的路径 在回调函数中,对应参数的位置,可以拿到这个模块,对外暴露的对象
    require(["demo/add"], function (add) {
      console.log(add.addOut(10, 20)); //30
      add.show();  //hello world
    });
    
    • 第二种:我们可以通过对当前的要引入的模块进行路径配置
    require.config({
      paths: {
        //后续你用配置好的名字,就相当于使用了这个路径
        add: "demo/add",
        mul: "demo/mul",
      },
    });
    require(["add", "mul"], function (add, mul) {
      console.log(add.addOut(10, 20));  //30
      add.show();
    
      console.log(mul.mul(10, 20));  //200
      mul.show();
    
      console.log(add.xxx(10, 20));  //230
    });
    

    上述案例的文件架构
    在这里插入图片描述

    请用今天的努力,让明天没有遗憾。
  • 相关阅读:
    JSP中文乱码
    Java Enum 浅析
    详解 Tomcat: The value for the useBean class attribute is invalid
    PHP+ACCESS 实例
    MySQL limit实际用法的详细解析
    JSP获取当前时间
    sql where 1=1和 0=1 的作用
    利用Quartus设计4位同步二进制加法计数器
    JSP各种路径的获取
    JSP连接MYSQL数据库
  • 原文地址:https://www.cnblogs.com/cupid10/p/13360998.html
Copyright © 2011-2022 走看看