zoukankan      html  css  js  c++  java
  • 坑人的 Javascript 模块化编程 sea.js

    坑人的 Javascript 模块化编程 sea.js

    忧伤 加 蛋疼的 开始了 看文档 

      Sea.js 进行配置

    seajs.config({
     
      // 设置路径,方便跨目录调用
      paths: {
        'arale': 'https://a.alipayobjects.com/arale',        //这特么是不是调用标识呀 通过alias 别名来进行调用 狗日的说清楚呀
        'jquery': 'https://a.alipayobjects.com/jquery'
      },
     
      // 设置别名,方便调用
      alias: {
        'class': 'arale/class/1.0.0/class',
        'jquery': 'jquery/jquery/1.10.1/jquery'
      }
     
    });
    // 加载一个模块   我屮艸芔茻 ,a 是哪个 哪个是a模块 你妹滴说清楚呀
    seajs.use('./a');
    // 加载一个模块,在加载完成时,执行回调
    seajs.use('./a', function(a) {
      a.doSomething();
    });
     
    // 加载多个模块,在加载完成时,执行回调
    seajs.use(['./a', './b'], function(a, b) {
      a.doSomething();
      b.doSomething();
    });

     

    // 所有模块都通过 define 来定义
    define(function(require, exports, module) {
    
      // 通过 require 引入依赖
      var $ = require('jquery');
      var Spinning = require('./spinning');
    
      // 通过 exports 对外提供接口
      exports.doSomething = ...
    
      // 或者通过 module.exports 提供整个接口
      module.exports = ...
      });

    另一种

    define("js/main", ["jquery", "nivoslider", "css/nivo-slider.css", "css/default/default.css"], function (require) {    //[] 这他娘滴是啥
        var $ = require("jquery"),
        nav = require("./nav"),
        slider = require("./slider");
     
        nav.render($(".nav:first"));
        slider.render();
    }),
    define("js/data", {
        navList: [
            {
                name: "案例展示",
                link: "gallery"
            }, {
                name: "服务条款",
                link: "service"
            }, {
                name: "联系我们",
                link: "contact"
            }
        ]
    }),  //怎么还用上了json  我操

    好了好了官方文档来了

    define(id?, dependencies?, factory);

    id

    当前模块的唯一标识。该参数可选。如果没有指定,默认为模块所在文件的访问路径。如果指定的话, 必须是顶级或绝对标识(不能是相对标识)。

    dependencies

    当前模块所依赖的模块,是一个由模块标识组成的数组。该参数可选。如果没有指定,模块加载器会从factory.toString() 中解析出该数组。

    ** 注意:强烈推荐不要设定 id 和 dependencies 参数。 在开发阶段,模块加载器会自动获取这两个参数。部署上线时,则可以通过优化工具来提取这两个参数。

    factory

    模块的工厂函数。模块初始化时,会调用且仅调用一次该工厂函数。factory 可以是函数, 也可以是对象、字符串等任意值,这时 module.exports 会直接设置为 factory 值。

    factory 函数在调用时,会始终传入三个参数: requireexports 和 module, 这三个参数在所有模块代码里可用。

    define(function(require, exports, module) {
    
      // The module code goes here
      
    });
  • 相关阅读:
    我开发的Quartz Cron表达式生成器
    web前端css定位position和浮动float
    ecmall模板编辑中的标题如何自定义读取
    记录一个项目的需求探讨过程
    这些记录
    今日工作总结:jquery轮转效果的集成与前台页面banner的设计思路总结
    小问题总结:鼠标点击到输入框(input)里的时候,输入框的提示消失,鼠标再移开,输入框提示出现
    web app与app的区别,即html5与app的区别
    3月初的日记:网站工作记录
    [接口]支付宝接口开发集成支付环境开发总结
  • 原文地址:https://www.cnblogs.com/subtract/p/4571381.html
Copyright © 2011-2022 走看看