Показать сообщение отдельно
  #294 (permalink)  
Старый 15.10.2013, 23:25
Интересующийся
Посмотреть профиль Найти все сообщения от KingOfMaxmaxmaximus
 
Регистрация: 15.10.2013
Сообщений: 9

UI.js от Maxmaxmaximus
Короче суть нового UI 901:

Интерфейс состоит из виджетов. Каждый виджет состоит из одного или нескольких HTML элементов и модели. Виджеты создаются так:


<div ui="name"></div>

ui['name'] = function(){

}



В функции мы описываем модель виджета, а в html элементе данные из этой модели доступны через {теги}. Например:

<div ui="name"> Числа {a} и {b} </div>

ui['name'] = function(){

  this.a = 9;
  this.b = 20;

}



За место {a} и {b} подставятся числа, изменяя числа в модели они автоматически перерисовываются в html.


В модель можно класть как просто какие-то константные значения, так и формулы. Например:

<div ui="name"> {a} + {b} = {c} </div>

ui['name'] = function() {

    this.a = 12;
    this.b = 19;
    this.c = '{a+b}';

};


Теперь в ячейке с в любой момент времени будет лежать сумма a+b. Изменив значение a или b мы МГНОВЕННО изменим значение и с. Формулы записываются как строки, только в фигурных скобках, чтобы отличаться от обычных строк.
Вот '{так}' например.

Например мы можем сделать формулу которая будет возвращать всегда актуальный массив:

ui['name'] = function() {

    this.a = 12;
    this.b = 19;
    this.c = '{a+b}';

    this.arr = '{ [a,b,c] }'; // [12, 19, 31]
    // или так
    this.arr = ['{a}', '{b}', '{c}']; // [12, 19, 31]

};


Это называется FRP, когда система в любой момент времени имеет явное и четкое состояние.

К примеру, в ячейке formData у нас всегда содержится актуальный обьект с актуальными данными. И все зависимости видны не вооруженному глазу. Мы можем аяксить этот обьект на сервер совершенно не парясь о его актуальности, абстрагируясь от необходимости следить за его наполнением. Все зависимости просчитываются автоматически.


Последний раз редактировалось KingOfMaxmaxmaximus, 18.10.2013 в 15:48.
Ответить с цитированием