Мы используем оповещение для передачи важной информации пользователям с помощью контекстных иконок и цветов. Значок и цвет соответствуют типу сообщения, которое он передает пользователю. В этой статье мы узнаем, как создавать и настраивать оповещения.

Компонент v-alert

Vuetify предоставляет компонент v-alert для создания предупреждений:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-alert> Alert Component </v-alert>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Использование v-alert без каких-либо реквизитов создает простое оповещение, содержащее текст, без какого-либо цвета, рамки или значка:

Предупреждающие цвета

Свойство color для v-alert позволяет нам настроить цвет компонента оповещения.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert color="indigo" dark> Alert Component </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Предупреждение о границах

Свойство border добавляет границу к одной из 4 сторон оповещения. Это четыре возможных значения для каждой из сторон: top, bottom, left и right.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="top" color="red lighten-2" dark>
          I'm an alert with a top border and red color
        </v-alert>
        <v-alert border="right" color="green" dark>
          I'm an alert with a right border and green color
        </v-alert>
        <v-alert border="bottom" color="pink darken-1" dark>
          I'm an alert with a bottom border and pink color
        </v-alert>
        <v-alert border="left" color="indigo" dark>
          I'm an alert with a left border and indigo color
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Украсьте с помощью Vuetify

Полное руководство по созданию элегантных веб-приложений с помощью платформы Vuetify Material Design.

Получите бесплатную копию здесь.

Цветная рамка

colored-prop удалит фон предупреждения, чтобы подчеркнуть границу, чей цвет установлен на значение реквизита color:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="left" color="indigo" colored-border elevation="2">
          An alert with a colored border
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Плотное оповещение

Установка пропеллера dense на true на v-alert сделает его более компактным за счет уменьшения высоты.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert dense type="info">
          Dense alert of type info
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Когда установлено border, толщина границы будет уменьшена, чтобы оставаться в соответствии с плотным стилем:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert dense type="info" border="right">
          Dense alert of type info
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Отклоняемое предупреждение

Свойство dimissable добавляет кнопку значок закрытия в конце компонента предупреждения.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="top" color="green" dismissible dark>
          Dismissable alert
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Нажатие кнопки закрытия установит оповещение с value на false, что скроет оповещение:

Двусторонняя привязка с v-моделью

Мы также можем напрямую управлять видимостью оповещения из кода, используя v-model для создания двусторонней привязки между переменной и оповещением value.

Чтобы увидеть, как это сделать на практике, давайте создадим кнопку под теперь скрытым предупреждением из нашего предыдущего примера кода. Мы также настроим двустороннюю привязку между переменной alert и видимостью оповещения.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="top" color="green" dismissible dark v-model="alert">
          Dismissable alert
        </v-alert>
      </v-col>
    </div>
    <div class="d-flex justify-center ma-4">
      <v-btn color="primary" @click="alert = true">Reset</v-btn>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
  data: () => ({
    alert: true,
  }),
};
</script>

Нажатие кнопки установит alert в true, что восстановит видимость оповещения.

Значки предупреждений

Мы можем включить значок в начале оповещения с реквизитом icon.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="top" color="red accent-2" dark icon="mdi-star">
          An alert with an icon
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Оповещение о высоте

Мы можем настроить высоту, которую имеет компонент оповещения, используя свойство elevation. Это свойство может принимать любое значение от 0 до 24.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert border="top" color="orange" colored-border elevation="5">
          Elevated alert
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Предупреждение

Установка реквизита outlined на true отобразит обведенный вариант предупреждения. Этот обведенный стиль делает фон предупреждения прозрачным и устанавливает цвет его границы и текста равным значению реквизита color.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert color="green" outlined> Outlined alert </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Выдающееся предупреждение

Свойство prominent делает оповещение более заметным, увеличивая высоту и применяя ореол к значку:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert color="red accent-2" prominent icon="mdi-school" dark>
          Prominent alert
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Текстовое оповещение

Вариант текстового оповещения имеет уменьшенную непрозрачность фона. Мы можем установить оповещение об этом альтернативном стиле с помощью реквизита text:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert color="teal" text> Text alert </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Предупреждение в форме

Установка свойства shaped на true в предупреждении добавит радиус границы в левом верхнем и правом нижнем углу предупреждения:

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert color="blue" shaped dark> Shaped alert </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Пользовательские переходы

Мы можем настроить переход, который показывает оповещение при переключении его видимости, используя свойство transition. Например, в приведенном ниже коде мы устанавливаем свойство transition на scale-transition, что заставит оповещение отображать переход шкалы, когда оно скрыто или показано.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-btn color="primary" @click="alert = !alert"> Toggle </v-btn>
    </div>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert
          color="indigo"
          dark
          transition="scale-transition"
          v-model="alert"
        >
          Shaped alert
        </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
  data: () => ({
    alert: false,
  }),
};
</script>

Типы оповещений

v-alert поставляется с реквизитом type, который предоставляет 4 стиля, которые изменяют значок и цвет предупреждения. Это стили success, info, warning и error.

<template>
  <v-app>
    <div class="d-flex justify-center ma-4">
      <v-col sm="6">
        <v-alert type="success"> I'm a success alert. </v-alert>
        <v-alert type="info"> I'm an info alert. </v-alert>
        <v-alert type="warning"> I'm a warning alert. </v-alert>
        <v-alert type="error"> I'm an error alert. </v-alert>
      </v-col>
    </div>
  </v-app>
</template>
<script>
export default {
  name: 'App',
};
</script>

Краткое содержание

Оповещение полезно для передачи важной информации нашим пользователям с помощью контекстных иконок и цветов. Vuetify предоставляет компонент v-alert для создания и настройки предупреждений.

Подпишитесь на нашу еженедельную рассылку, чтобы быть в курсе всех последних советов и руководств по Vuetify и Vue.

Получить обновленную статью на codingbeautydev.com.