Совместное использование библиотек

Umbrella JS — это лёгкая и минималистичная библиотека для работы с DOM в JavaScript, создающая удобный интерфейс для манипуляции элементами страницы. Основная философия заключается в простоте и лаконичности: методы цепочечные, объекты обёрнуты в u(), а работа с коллекциями элементов напоминает jQuery, но с меньшим размером и упрощённым синтаксисом.

Создание коллекции элементов

Для работы с элементами используется функция u(). В качестве аргумента можно передавать:

  • CSS-селекторы;
  • DOM-элементы;
  • Массивы DOM-элементов.

Примеры:

const items = u('.item'); // Все элементы с классом item
const firstItem = u(document.getElementById('first')); // Один элемент по id
const multipleElements = u([document.body, document.head]); // Несколько элементов

Каждый объект, возвращаемый u(), является коллекцией элементов, поддерживающей цепочку методов для дальнейших манипуляций.

Работа с классами и атрибутами

Umbrella JS предоставляет удобные методы для управления классами и атрибутами элементов.

  • addClass(className) — добавление класса;
  • removeClass(className) — удаление класса;
  • toggleClass(className) — переключение класса;
  • attr(attributeName, value) — установка или получение атрибута.

Пример:

u('.menu-item').addClass('active');
u('#logo').attr('alt', 'Логотип компании');
const href = u('a').attr('href'); // Получение атрибута href

Работа с текстом и HTML

Манипуляции с содержимым элементов выполняются через методы text() и html():

u('.description').text('Новый текст описания');
u('#content').html('<strong>Важная информация</strong>');

Метод text() безопасно заменяет текстовое содержимое без HTML, а html() позволяет вставлять HTML-разметку.

События

Umbrella JS упрощает работу с событиями через методы on() и off(). Поддерживаются стандартные DOM-события и делегирование.

u('button').on('click', function(e) {
    console.log('Нажата кнопка', e.target);
});

u(document).on('click', '.dynamic-item', function(e) {
    console.log('Клик по динамическому элементу');
});

u('button').off('click'); // Удаление обработчика

Манипуляции с DOM

Добавление, удаление и вставка элементов реализуются через методы:

  • append(content) — вставка внутрь элементов;
  • prepend(content) — вставка в начало;
  • before(content) — вставка перед элементом;
  • after(content) — вставка после элемента;
  • remove() — удаление элементов из DOM.

Примеры:

u('#list').append('<li>Новый элемент</li>');
u('#list').prepend('<li>Первый элемент</li>');
u('.old-item').remove();

Эти методы позволяют работать как с HTML-строками, так и с DOM-элементами или коллекциями Umbrella JS.

Эффекты и анимации

Umbrella JS содержит простые средства для анимации и скрытия элементов:

  • show() — делает элементы видимыми;
  • hide() — скрывает элементы;
  • toggle() — переключает видимость;
  • fadeIn(duration) и fadeOut(duration) — плавное появление и исчезновение.

Пример использования анимации:

u('.notification').fadeIn(500).delay(2000).fadeOut(500);

Методы поддерживают цепочки, что позволяет создавать плавные последовательные действия.

AJAX-запросы

Для работы с HTTP-запросами используется метод request():

u.request({
    url: '/api/data',
    method: 'GET',
    success: function(response) {
        console.log('Данные получены', response);
    },
    error: function(err) {
        console.error('Ошибка запроса', err);
    }
});

Поддерживаются GET и POST-запросы, а также настройка заголовков и параметров. Результат передаётся в функции success и error.

Совместное использование с другими библиотеками

Umbrella JS спроектирован так, чтобы не конфликтовать с другими библиотеками. Основные принципы совместного использования:

  • Изоляция глобальных переменных: Umbrella JS не изменяет глобальный объект window кроме предоставления функции u().
  • Совместимость с jQuery: методы u() и jQuery могут работать рядом, если их объекты не смешиваются напрямую. Например, можно использовать jQuery для сложных плагинов, а Umbrella JS для лёгких манипуляций с DOM.
  • Чистая работа с DOM: все методы Umbrella JS работают на чистых DOM-элементах, поэтому их можно передавать в любые библиотеки, не вызывая конфликтов.

Пример совместного использования:

u('.item').addClass('highlight'); // Umbrella JS
$('.slider').slick(); // jQuery-плагин

Такой подход позволяет объединять удобство Umbrella JS для базовых задач с мощью других библиотек для специфических функций, сохраняя производительность и компактность кода.

Расширение функциональности

Umbrella JS поддерживает расширение через пользовательские плагины. Можно добавлять методы к прототипу u.fn:

u.fn.greenify = function() {
    this.css('color', 'green');
    return this;
};

u('p').greenify(); // Все параграфы окрашиваются в зелёный

Это позволяет создавать собственные цепочные методы и интегрировать их с существующими коллекциями.

Основные преимущества в совместном использовании

  1. Минимализм и лёгкость — маленький размер библиотеки облегчает подключение вместе с другими.
  2. Цепочечность методов — упрощает интеграцию с другими библиотеками, не нарушая порядок действий.
  3. Гибкость селекторов и элементов — возможность работать с CSS-селекторами, DOM-элементами или коллекциями других библиотек.
  4. Безопасность глобального пространства — не создаёт конфликтов в window и глобальных переменных.
  5. Простое расширение — создание плагинов и собственных методов не мешает другим библиотекам.

Совместное использование Umbrella JS с другими инструментами позволяет сочетать компактность и удобство с функциональной мощью сторонних библиотек, поддерживая чистый и читаемый код.