zoukankan      html  css  js  c++  java
  • seajs 学习笔记

    seajs的作者是玉伯,具体好处优点等详见官方网址

    介绍

    1 模块定义define

    define(function(require,exports,module){
        //require 引入需要的模块如jquery等
        //var $ = require('./jquery');
     
        //exports可以把方法或属性暴露给外部
        exports.name = 'hi';
     
        exports.hi = function(){
            alert('hello');
        }
     
        //module提供了模块信息
    });
    

      

    2 使用定义好的模块seajs.use

    <!doctype html>
    <html>
    <head>
    <title>SeaJs Test</title>
    <meta charset="UTF-8">
     
    <script type="text/javascript" src="seajs/sea.js"></script>
     
    <script type="text/javascript">
        //第一个参数是模块标识,即要使用模块的路径,这里是t1.js
        //第二个参数是一个回调函数
        seajs.use('./js/t1',function(t){
            t.hi();
        });
    </script>
    </head>
    <body>
     
    </body>
    </html>

    3 加载依赖项require

    //名称必须是require,可以理解为一个关键词一样,接收一个参数
    var $ = require('./jquery');

    4 向外部提供接口exports

    define(function(require,exports,module){
        //exports可以把方法或属性暴露给外部
        exports.name = 'hi';
     
        exports.hi = function(){
            alert('hello');
        }
    });

    5 当前模块信息module

      这里只介绍几个基本的,具体可以参考https://github.com/seajs/seajs/issues/242

      1 module.id 模块标识

      2 module.uri 根据模块系统的路径解析规则得到的模块绝对路径

      3 module.dependencies 表示当前模块的依赖列表,是一个数组

      4 module.status 当前模块的状态,是一个数值

    示例

    代码结构

    代码文件

    index.html

    <!doctype html>
    <html>
    <head>
    <title>SeaJs Test</title>
    <meta charset="UTF-8">
     
    <script type="text/javascript" src="seajs/sea.js"></script>
     
    <script type="text/javascript">
        seajs.use('./js/init',function(init){
            init.init();
        });
     
        seajs.config({
          charset: 'utf-8'
        });
    </script>
    </head>
    <body>
        <div class="main">
            <h1>信息</h1>
            <ul>
                <li id="s1"></li>
                <li id="s2"></li>
                <li id="s3"></li>
            </ul>
        </div>
    </body>
    </html>

    init.js

    define(function(require,exports,module){
        var man = require('./man');
        var css = require('../css/main.css');
     
        var $ = function(id){
            return document.getElementById(id);
        }
     
        exports.init = function(){
            var s1 = $('s1');
            var s2 = $('s2');
            var s3 = $('s3');
     
            var name = man.getName();
            var age = man.getAge();
            var msg = man.say();
     
            s1.innerHTML = name;
            s2.innerHTML = age;
            s3.innerHTML = msg;
        }
    });

    man.js

    define(function(require,exports,module){
        var msg = require('./msg');
     
        var _name = 'tom';
        var _age = '20';
     
        exports.myName = _name;
     
        exports.say = function(){
            return msg.getMsg();
        }
     
        exports.getName = function(){
            return _name;
        }
     
        exports.getAge = function(){
            return _age;
        }
    });

     msg.js

    define(function(require,exports,module){
        var _msg = 'not set msg!';
     
        exports.setMsg = function(msg){
            _msg = msg;
        }
     
        exports.getMsg =function(){
            return _msg;
        }
    });

    main.css

    *{
        font-size: 18px;
        font-family: "Tahoma,Arial,Helvetica,sans-serif";
    }
    .main{
        width: 500px;
        height: 300px;
        margin: 50px auto;
    }
  • 相关阅读:
    May 24th 2017 Week 21th Wednesday
    May 23rd 2017 Week 21st Tuesday
    全球顶尖大学的UX课程资源,英文!
    如何设计出一款出色的结账表单
    快速完成网页设计,10个顶尖响应式HTML5网页模板助你一臂之力
    界面设计中如何增强CTA按钮召唤力?
    10个实用的UX设计作品推销小窍门
    UX术语详解:任务流,用户流,流程图以及其它全新术语
    让你不再恋家的9款小众时尚的酒店网站设计
    聊聊原型设计中的团队管理功能
  • 原文地址:https://www.cnblogs.com/aure/p/4833279.html
Copyright © 2011-2022 走看看