Skip to content

Miha-ha/Mix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIX - бибилиотека облегчающая написание модульных приложений на JavaScript
Возможности:
    + динамическая загрузка зависимых модулей
    + классическое ООП от Jhon Resig
    + динамическая загрузка наследуемых классов


Наименование модулей(модули именуются маленькими буквами):
    1. modulename - загрузка файла "modulename.js" из текущего каталога. Namespace = window
    2. super.module.name - загрузка файла "name.js" из каталога "super/module/". Namespace = Super.Global
Наименование классов(классы именуются с большой буквы):
    1. ClassName  - загрузка файла "classname.js" из текущего каталога. Namespace = window
    2. Super.Class.Name - Загрузка файла "name.js" из каталога "super/class/". Namespace = Super.Class

Пример определения и использования класса Point:
//определение класса. Файл Mathematics/Geometry/Point.js
Mix.define('Mathematics.Geometry.Point', {
    init:function (x, y) {
        this.x = x;
        this.y = y;
    },
    getDistance:function (point, squared) {
        var x = point.x - this.x,
            y = point.y - this.y,
            g = x * x + y * y;
        return squared ? g : Math.sqrt(g);
    },
    toString:function () {
        return "{ x:" + this.x + ", y:" + this.y + " }";
    }
});
//Использование класса. Файл index.html
<!DOCTYPE html>
<html>
<head>
    <title>Mix geometry example</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<script data-main src="../../mod.js"></script>
</body>
</html>

Аттрибут data-main определяет стартовый модуль/класс.
Примеры:
    data-main               - загрузит main.js
    data-main="main"        - загрузит main.js
    data-main="index"       - загрузит index.js
    data-main="app.main"    - загрузит app/main.js



Path в настройках сожержит именнованные пути для альтернативной загрузки модулей/классов.
При подключении достаточно указать имя пути отделив его от имений класса/модуля двоеточием.
Пример:
Mix.config({
     path: {
            common: '../../common/'
     }
}).module({
          name: 'main',
          requires: ['common:EventManager', 'Ping', 'Pong'],
          body: function (){
              var eventManager = new EventManager(),
                  ping = new Ping(eventManager),
                  pong = new Pong(eventManager);

              ping.send();
          }
});
 url для загрузки класса EventManager будет такой: ../../common/EventManager.js

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published