Компонент Result предназначен для отображения состояния завершения операции, ошибки или успеха в интерфейсе. Он позволяет визуально оформить сообщения о результатах действий пользователя, предоставляя возможность добавлять заголовки, описания, иконки и действия.
import { NResult } from 'naive-ui'
<NResult
status="success"
title="Операция выполнена"
description="Данные успешно сохранены"
/>
status — ключевой пропс, определяющий визуальный стиль компонента. Поддерживаемые значения:
"success" — успех операции"warning" — предупреждение"error" — ошибка"info" — информационное сообщение"404", "403", "500" —
страницы системных ошибокtitle — заголовок результата, обычно краткая фраза о состоянии.
description — дополнительное описание, поясняющее заголовок.
Компонент Result позволяет заменять стандартные иконки на кастомные изображения или компоненты:
<NResult
status="error"
title="Ошибка загрузки"
description="Не удалось получить данные"
icon={<CustomErrorIcon />}
/>
status для стилизации
цвета или размеров.Для статусов "404", "403",
"500" можно использовать специальные изображения по
умолчанию:
<NResult
status="404"
title="Страница не найдена"
/>
В этом случае Naive UI автоматически подставляет готовое изображение ошибки.
Для добавления кнопок действий, например, перехода на другую страницу
или повторной попытки, используется слот actions:
<NResult
status="error"
title="Ошибка сохранения"
>
{{
actions: () => (
<div>
<NButton secondary>Попробовать снова</NButton>
<NButton>Перейти на главную</NButton>
</div>
)
}}
</NResult>
NButton, NLink и кастомные элементы.Компонент Result поддерживает управление размером и центровкой контента:
<NResult
status="success"
title="Готово"
description="Ваши данные обновлены"
size="large"
class="centered-result"
/>
"small", "medium",
"large"..centered-result {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
}
Компонент можно применять не только как статическую страницу, но и внутри модальных окон:
<NModal v-model:show="showResult">
<NResult
status="success"
title="Операция выполнена"
description="Все данные успешно отправлены"
/>
</NModal>
v-model.Часто Result используется совместно с формами и таблицами для визуальной обратной связи после отправки данных:
<NForm @submit="handleSubmit">
<!-- поля формы -->
<NButton type="submit">Сохранить</NButton>
</NForm>
<NResult
v-if="submissionStatus"
:status="submissionStatus"
title="Результат операции"
description="Данные сохранены или произошла ошибка"
>
{{
actions: () => <NButton @click="resetForm">Вернуться к форме</NButton>
}}
</NResult>
v-if позволяет динамически показывать компонент в
зависимости от состояния.status можно привязывать к состоянию ответа от
сервера..n-result {
--n-result-icon-size: 80px;
--n-result-title-font-size: 24px;
--n-result-description-font-size: 16px;
}
actions могут быть ссылками на другие маршруты:<NButton @click="$router.push('/home')">На главную</NButton>
actions, доступны слоты для icon,
title, description, что позволяет полностью
переопределять стандартный рендер.Этот подход делает компонент Result универсальным инструментом для отображения результатов операций, ошибок и системных страниц, обеспечивая гибкость и единообразие интерфейса при разработке приложений с Naive UI.