• (转)RequireJS shim 用法说明


    RequireJS中如果使用AMD规范,在使用的过程中没有太多的问题,如果加载非AMD规范的JS文件,就需要使用Require中的shim.

    复制代码
    require.config({
        paths:{
            jquery:"/js/jquery2.0",
            InStorage:"/js/in/InStorage",
            Product:"/js/product/Product",
            cate:"/js/product/Category",
        },
        shim:{
            cate:{
                deps:[],
                exports:"Category"
            }
        }
    });
    复制代码

      cate:"/js/product/Category" 该文件是非AMD规范的JS,在使用的过程中遵循如下几个步骤:

      (1) paths 中配置文件加载的路径, JSON中的 Key值可以随意,尽量有意义,JSON中的Value是文件的加载路径,这个不必多说

      (2) shim 中定义一个JSON对象, Key 值(cate) 与paths中定义的名字一样

      (3) shim中的JSON对象有两个属性: deps,exports ;  deps 为数组,表示其依赖的库, exports 表示输出的对象名

    复制代码
    var Category=(function(){
    
        var param={};
    
        param.Add=function(){
            console.log("新增分类");
        }
    
        return param;
    
    })();
    
    
    var Category=(function(param){
    
        param.Write=function(){
            console.log("输出分类信息");
        }
    
        return param;
    
    })(Category||{});
    复制代码

      requirejs可以实现js的延时加载, 在方法调用的时候加载JS,也就是在function 中require 某个模块的信息

    复制代码
    define(function(){
    
        var ProductManager={
            Create:function(){
                console.log("创建产品");
    
                require(["cate"],function(cate){
                    cate.Write();
                    cate.Add();
                });
            }
        }
    
        return ProductManager;
    
    });
    复制代码
  • 相关阅读:
    docker私有仓库搭建及使用
    服务器ip迁移纪要
    Windows 下QT程序发布
    Prometheus监控软件部署方法
    android的listview控件,加了行内按钮事件导致行点击失效的问题
    惊奇!Android studio内部在调用Eclipse
    关于Android Stuido2.3和Eclipse4.4
    XCODE9.1的一些新问题
    osx12.6设置全屏
    IEEE754浮点数与字节数互转工具
  • 原文地址:https://www.cnblogs.com/ximenxiazi/p/9055469.html
Copyright © 2020-2023  润新知