Библиотека iziToast предоставляет гибкую систему конфигурации, в которой параметры могут задаваться на нескольких уровнях. Понимание порядка применения настроек позволяет точно контролировать поведение уведомлений и избегать неожиданных результатов.
Настройки в iziToast можно условно разделить на три уровня:
Каждый следующий уровень имеет более высокий приоритет и может переопределять предыдущий.
Глобальные параметры задаются с помощью метода:
iziToast.settings({
timeout: 5000,
position: 'topRight',
theme: 'dark'
});
Эти значения применяются ко всем уведомлениям, если явно не указано иное.
Особенности:
При создании конкретного уведомления можно передать собственные параметры:
iziToast.show({
title: 'Ошибка',
message: 'Что-то пошло не так',
timeout: 10000,
position: 'bottomLeft'
});
Приоритет:
Если параметр не задан ни глобально, ни локально, используется встроенное значение библиотеки:
timeout: 5000
position: 'bottomRight'
theme: 'light'
Эти значения определены внутри самой библиотеки и служат базовой точкой.
При создании уведомления применяется следующая последовательность:
iziToast.settings()show,
success, error и т.д.)Схема приоритета:
Встроенные defaults < Глобальные настройки < Локальные настройки
iziToast.settings({
timeout: 4000,
position: 'topCenter'
});
iziToast.show({
message: 'Сообщение',
timeout: 10000
});
Результат:
timeout будет равен 10000 (локальное
значение)position будет равен topCenter
(глобальное значение)Параметры не обязательно задавать полностью. Можно изменить только нужные свойства:
iziToast.settings({
color: 'blue',
timeout: 3000
});
iziToast.show({
message: 'Только цвет изменится',
color: 'red'
});
Итог:
color = red (локально)timeout = 3000 (глобально)Некоторые параметры являются вложенными объектами, например
buttons, progressBar, overlay. В
таких случаях происходит поверхностное объединение, а
не глубокое.
iziToast.settings({
progressBar: true
});
iziToast.show({
progressBar: false
});
Поле progressBar полностью переопределяется, а не
дополняется.
Методы вроде:
iziToast.success()
iziToast.error()
iziToast.warning()
содержат собственные предустановленные значения:
iziToast.success({
message: 'Успешно'
});
Фактически это:
iziToast.show({
color: 'green',
icon: 'ico-success',
message: 'Успешно'
});
Приоритет:
iziToast.success({
color: 'blue'
});
При наличии противоречий всегда действует правило последнего переопределения:
iziToast.settings({
timeout: 3000
});
iziToast.show({
timeout: 2000
});
iziToast.show({
timeout: 1000
});
Каждое уведомление использует свои локальные значения независимо от предыдущих вызовов.
Для возврата к исходному состоянию используется:
iziToast.destroy();
После этого:
1. Централизация базовых настроек
iziToast.settings() для единообразия2. Минимизация локальных переопределений
3. Явное указание критичных параметров
timeout, position,
zindex4. Использование обёрток с осторожностью
Переопределение без учета глобальных настроек
iziToast.settings({
theme: 'dark'
});
iziToast.show({
theme: 'light'
});
Может привести к несогласованному интерфейсу.
Ожидание глубокого merge объектов
iziToast.settings({
buttons: [['OK', function() {}]]
});
iziToast.show({
buttons: [['Cancel', function() {}]]
});
Старые кнопки не сохраняются.
Игнорирование порядка вызовов
iziToast.show({ timeout: 1000 });
iziToast.settings({ timeout: 5000 });
Первое уведомление уже создано и не изменится.
Библиотека последовательно объединяет объекты настроек:
finalConfig = Object.assign(
{},
defaultSettings,
globalSettings,
localOptions
);
Это означает:
Для стабильного поведения важно:
Такой подход позволяет использовать iziToast как полностью управляемый инструмент отображения уведомлений без неожиданных эффектов.