Umbrella JS — это лёгкая библиотека для работы с DOM, предоставляющая удобный API, напоминающий jQuery, но с меньшим весом и высокой производительностью. Основная идея библиотеки заключается в создании цепочек вызовов методов для манипуляции элементами страницы.
Выбор элементов в Umbrella JS производится через функцию
u(), принимающую CSS-селектор или DOM-элемент:
u('.button'); // выбор всех элементов с классом button
u('#header'); // выбор элемента с id header
u(document.body); // оборачивание DOM-элемента
Выбор элементов возвращает объект, содержащий набор методов для дальнейших манипуляций. Объект поддерживает цепочки вызовов, что позволяет писать компактный и читаемый код.
Добавление и удаление классов:
u('.item').addClass('active'); // добавление класса active
u('.item').removeClass('active'); // удаление класса
u('.item').toggleClass('highlight'); // переключение класса
Работа с атрибутами:
u('img').attr('alt', 'Описание картинки'); // установка атрибута
u('img').attr('src'); // получение значения атрибута
u('a').removeAttr('href'); // удаление атрибута
Umbrella JS предоставляет методы для чтения и изменения контента:
u('#content').html('Новый текст
'); // замена HTML содержимого
u('#content').text('Только текст'); // установка текстового содержимого
u('#content').append('Добавлено'); // добавление в конец элемента
u('#content').prepend('В начало'); // добавление в начало
u('#content').empty(); // удаление всего содержимого
Для управления стилями используются методы css():
u('.box').css('background-color', 'red'); // установка одного свойства
u('.box').css({ color: 'white', fontSize: '16px' }); // установка нескольких свойств
u('.box').css('display'); // получение значения свойства
Umbrella JS упрощает работу с событиями:
u('.btn').on('click', function(event) {
console.log('Кнопка нажата', event.target);
});
u('.btn').off('click'); // удаление обработчиков
u('.btn').trigger('click'); // программное вызов события
События могут быть назначены на несколько элементов одновременно, что делает код компактным и управляемым.
Umbrella JS облегчает работу с DOM-структурой:
u('.list').append('Новый элемент '); // добавление элемента
u('.list li').remove(); // удаление элементов
u('.list li').before('Перед элементом '); // вставка перед
u('.list li').after('После элемента '); // вставка после
Также поддерживаются методы навигации по DOM:
u('.active').parent(); // родительский элемент
u('.active').children(); // дочерние элементы
u('.active').siblings(); // соседние элементы
Методы работы с формами включают удобное получение и установку значений:
u('input[name="username"]').val(); // получение значения
u('input[name="username"]').val('admin'); // установка значения
u('form').serialize(); // сериализация формы в объект
Umbrella JS предоставляет простую обертку для AJAX-запросов через
u.ajax():
u.ajax({
url: '/api/data',
method: 'GET',
success: function(response) {
console.log('Данные получены', response);
},
error: function(err) {
console.error('Ошибка запроса', err);
}
});
Можно использовать также метод u.get() и
u.post() для упрощённых GET и POST запросов:
u.get('/api/data', function(response) {
console.log(response);
});
u.post('/api/save', { name: 'John' }, function(response) {
console.log(response);
});
Umbrella JS совместима с современными политиками CSP (Content
Security Policy), поскольку все методы работы с DOM и событиями не
требуют инлайновых скриптов. Использование внешних скриптов и
обработчиков через on() и ajax() полностью
соответствует CSP:
eval() или инлайновые события.connect-src.script-src 'unsafe-inline' не используется.Для проектов с жёсткой CSP рекомендуется загружать Umbrella JS как внешний файл и использовать только методы API, избегая вставки инлайновых скриптов.
Umbrella JS отличается минимальным весом и высокой скоростью:
querySelectorAll.u() без повторного поиска в DOM.Umbrella JS поддерживает все современные браузеры и корректно работает в мобильных устройствах. Благодаря отсутствию зависимостей и использованию стандартизированных методов DOM, библиотека легко интегрируется с любыми фронтенд-фреймворками и библиотеками.