dresscode-quantum

1.0.2 • Public • Published

Quantum.Quant

Экземпляр класса Quantum.Quant это объект с изменяющимся значением. По сути, это просто объект, хранящий в себе некое значение и имеющий методы getValue() и setValue(value). Но есть пара важных свойств, делающих кванты удобными и полезными.

Метод when(fn, ctx) принимает функцию трансформации значения исходного кванта и возвращает новый квант, который будет меняться синхронно с исходным.

var quant1 = new Quantum.Quant(5);
var quant2 = quant1.when(funciton(value) {
    return value * value;
});
console.log(quant2.getValue()); // 25
quant1.setValue(6);
console.log(quant2.getValue()); // 36

Если значением кванта установить другой квант, то значением первого будет считаться значение вложенного.

var quant1 = new Quantum.Quant(5);
var quant2 = new Quantum.Quant(quant1);
console.log(quant2.getValue()); // 5

Всё это позволяет строить синхронно обновляемые цепочки квантов.

Ещё методы кванта

  • quant.whenNotNull(fn, ctx) вызывает fn только если значение исходного кванта не null и не undefined.
  • quant.whenNull(fn, ctx) вызывает fn только если значение исходного кванта null или undefined, остальные значения передаются в новый квант без изменений.
  • quant.spread(fn, ctx) деструктурирует значение-массив кванта в аргументы функции fn.
  • quant.touch() принудительно вызывает процедуру обновления значения. Пригодится, если в кванте лежит массив или объект, внутренности которого изменились, но ссылка на него осталась та же.
  • quant.ifNotNull(fn, ctx) вызывает fn и передаёт в него значение кванта, если это значение не null и не undefined.

Полезные функции

  • Quantum.combine(array) принимает массив квантов и возвращает квант, зависящий от всех квантов из массива.
  • Quantum.debounce(quant, delay) возвращает квант, в котором дебаунсится значение исходного кванта.
  • Quantum.DOM.getDocumentScroll() возвращает квант, содержащий позицию скрола документа.
  • Quantum.DOM.getViewportSize() возвращает квант, содержащий размер видимой части страницы.

Readme

Keywords

none

Package Sidebar

Install

npm i dresscode-quantum

Weekly Downloads

22

Version

1.0.2

License

none

Unpacked Size

15.8 kB

Total Files

8

Last publish

Collaborators

  • kolyaj