Bliss.js предоставляет удобный набор утилит для работы с DOM, событиями и асинхронными операциями, однако с развитием библиотеки и стандарта JavaScript некоторые методы стали устаревшими. Использование устаревших методов может привести к проблемам совместимости и снижению производительности, поэтому важно понимать их назначение и альтернативы.
B.events
и устаревшие синтаксисы событийМетод B.events изначально использовался для привязки
событий к элементам:
B.events(document.body, 'click', function() {
console.log('Клик по body');
});
Старый синтаксис поддерживал строку с несколькими событиями через пробел:
B.events(document.body, 'click mouseover', function() {
console.log('Клик или наведение');
});
Проблемы устаревшего подхода:
Современная альтернатива: использование
B.on и массивов событий:
B.on(document.body, ['click', 'mouseover'], function() {
console.log('Клик или наведение');
});
B.ajax без промисовРанее для работы с AJAX Bliss.js предоставлял метод
B.ajax, который возвращал объект с колбэками
success, error, complete:
B.ajax({
url: '/data',
method: 'GET',
success: function(res) { console.log(res); },
error: function(err) { console.error(err); }
});
Недостатки устаревшего подхода:
async/await.Современная альтернатива: использование
B.fetch, которая возвращает промис:
B.fetch('/data')
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
Ряд методов для работы с классами и атрибутами также устарел:
B.addClass(element, 'className') → устарел, заменен на
element.classList.add().B.removeClass(element, 'className') → устарел, заменен
на element.classList.remove().B.toggleClass(element, 'className') → устарел, заменен
на element.classList.toggle().Использование нативных методов повышает читаемость кода и снижает зависимость от библиотеки.
Пример устаревшего кода:
B.addClass(el, 'active');
B.toggleClass(el, 'highlight');
Современный подход:
el.classList.add('active');
el.classList.toggle('highlight');
Bliss.js предлагал метод B.$ для поиска элементов:
var items = B.$('.item');
Старый метод возвращал коллекцию, которая не поддерживала стандартные методы массива.
Современная практика — использовать B.all или нативные
методы:
var items = B.all('.item'); // возвращает массив
items.forEach(el => console.log(el.textContent));
Преимущества нового подхода:
map, filter, reduce.Ранее применялись методы B.attr и
B.removeAttr:
B.attr(el, 'data-id', '123');
B.removeAttr(el, 'data-id');
Недостатки:
Современный вариант:
el.setAttribute('data-id', '123');
el.removeAttribute('data-id');
Для dataset:
el.dataset.id = '123';
delete el.dataset.id;
Bliss.js предлагал методы B.css и
B.hide/B.show:
B.css(el, 'display', 'none');
B.show(el);
Недостатки устаревшего подхода:
Современный вариант — использовать style напрямую:
el.style.display = 'none';
el.style.setProperty('--main-color', '#ff0000');
B.on и массивы
событий вместо строковых списков.B.fetch с промисами
вместо старого B.ajax.classList вместо
методов Bliss.js для классов.B.all или
querySelectorAll с преобразованием в массив.setAttribute/removeAttribute и
dataset вместо B.attr.style вместо B.css, B.show и
B.hide.Эти изменения обеспечивают большую совместимость с современными стандартами, упрощают поддержку кода и повышают производительность приложений на Bliss.js.