---
url: "https://vueda.dev/v3/reference/api/vue/ViewLoading.md"
title: "ViewLoading"
---

# ViewLoading

## Overview

Compact loading status for route-level async resolution. Shows a loading icon
and label, with optional request details and dependency progress. After
`slowAfterMs`, shows a slow-load message and the optional `slow-actions` slot.

Theme entry: [ViewLoading](/v3/reference/theming/keys/ViewLoading.md)

## Props

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="prop-iconOverride">iconOverride</span> | `Object` |  | `null` | A partial icon registry (`{ [componentName]: { [iconName]: { component, props } } }`) merged with inherited and default icon entries; scopes icon overrides to this component and its descendants. |
| <span id="prop-themeOverride">themeOverride</span> | `Object` |  | `null` | A partial ThemeObject keyed by component name, merged over this component's theme and provided to descendants. |
| <span id="prop-name">name</span> | `string` |  | `undefined` | What is being loaded (e.g. "Loading customer record"). |
| <span id="prop-verb">verb</span> | `string` |  | `undefined` | HTTP verb of the in-flight request (e.g. "GET"). |
| <span id="prop-path">path</span> | `string` |  | `undefined` | Route path of the in-flight request (e.g. "/crm/customers/4218"). |
| <span id="prop-context">context</span> | `string` |  | `undefined` | One-line context beneath the name (e.g. "Northwind Logistics · 14 invoices · 3 contacts"). |
| <span id="prop-requestId">requestId</span> | `string` |  | `undefined` | Request identifier forwarded to LoadingHeartbeatStrip. |
| <span id="prop-dependencies">dependencies</span> | `{ resolved: number, total: number }\|undefined` |  | `undefined` | Resolved and total dependency counts forwarded to LoadingHeartbeatStrip. |
| <span id="prop-slowBlurb">slowBlurb</span> | `string` |  | `undefined` | Route-specific explanation shown in the slow-path blurb once the wait exceeds `slowAfterMs`. E.g. "The aging report aggregates 14 k invoices across 380 customers." |
| <span id="prop-slowAfterMs">slowAfterMs</span> | `number` |  | `() => {     if (typeof window === "undefined") {         return 3000;     }     const raw = window         .getComputedStyle(document.documentElement)         .getPropertyValue("--vueda-loading-slow-ms")         .trim();     const parsed = parseInt(raw, 10);     return Number.isFinite(parsed) ? parsed : 3000; }` | Milliseconds before the slow-path warning tone activates. Defaults to the `--vueda-loading-slow-ms` CSS token (3000ms). Override per-route for known-slow views (reports, exports) to avoid a premature flip. |

## Slots

| Name | Scoped | Description |
| --- | --- | --- |
| `slow-actions` |  | slow-actions Buttons shown once the slow threshold is exceeded (e.g. Cancel, View queue). |

[Full slot reference](/v3/reference/api/vue/ViewLoading/slots.md)

## Source

`client/lib/views/ViewLoading.vue`
