Skip to content

Components and props

The Props tab shows the Vue instance tree on the page: component names, link to the root DOM node, and props summaries. Full values load when you select a row; you can edit and write back where supported.

Inspect mode, favorites, and the component blacklist are covered on separate pages: Inspect, Favorites, Blacklist.

Top toolbar

Props, область заголовка

The search field supports several modes. Active criteria come from Search by next to the input. The same options can be preset in Options for this tab.

ModePurpose
Namefilter by component name
Labelmatch label string / suitable instance metadata
Rootmatch root element information
Keyprop names (including nested), deep search on the page
Valueprop values (including nested), query on the page

Key and Value use a minimum query length (default 2 characters; configurable in inspector search settings).

Partial vs exact. If the query is not wrapped in quotes, enabled text modes use substring matching (case-insensitive). Exact whole-string match applies when the entire search text is wrapped in double quotes "...".

Inspect next to search picks a node on the page to filter the list; see Inspect.

Status chips

Right side of Props:

ItemPurpose
Filtered (amber badge)A page-element filter (Inspect) is active. Click clears the filter and restores the full list.
N or N/MVisible rows after filtering; with a non-empty search, M is total components in the snapshot.
FavoritesMatches between the current tree and saved favorites. Click opens Options favorites.
UpdateRefresh button and last snapshot time (lastUpdated).

Work area

Props, полноэкранный режим

Component list

Left: the component table. Main columns (visibility in table settings):

  • Name — component name;
  • Root Element — root DOM info for the instance (tag, classes, id when available);
  • Received — count of props actually passed;
  • Declared — count of props declared on the component.

Hovering a row highlights the matching node in the page.

The row context menu and star connect to Favorites and Blacklist.

Component details

Selecting a component row opens a detail panel for that component.

Summary header

The top of the panel shows:

  • component name;
  • short root DOM info (tag and classes);
  • size of the serialized Received tab payload;
  • an Updated: line with the last update time for the node data.

Component data

Two tabs below:

TabPurpose
Receivedprops actually passed; view and edit supported
Declareddeclared prop definitions (rawProps); view only

Both tabs are always available.

The active tab is shown as JSON—text or tree—according to inspector settings.

The editor supports copying the contents.

  • ← Back closes details and returns to the table;
  • Esc in edit mode discards edits;
  • Esc outside edit mode returns to the list.

Controls

ControlPurpose
Staradd or remove from favorites; always available
Refreshre-fetch the selected component from the page; temporarily disabled while a refresh runs; hidden in Edit mode
Editenter edit mode; only on the Received tab

Button order in the header (view mode): Star → Refresh → Edit.

Edit mode

Edit applies only to the Received tab.

When editing, Refresh and Edit become Cancel and Save. Star stays available.

Before editingIn edit mode
RefreshCancel — revert the draft to the last loaded props and leave edit mode
EditSave — write changes to the app
  • Save is disabled if JSON fails validation;
  • changes apply only after Save;
  • if save fails, edit mode may remain—watch UI messages and the console.

The favorite star in this panel and in the table is described on Favorites.

Card data reflects the last successful update for the selected node—use Refresh in the detail header to re-query props from the page, or toolbar Refresh on Props for a full snapshot refresh.

Display limits

Reading limits

Props on demand: opening a card reads and serializes values for the detail panel; heavy objects hit serializer limits (below).

The light table sends metadata and counts without full serialization of every value on each update.

Storage

There is no fixed “N rows like Network” cap for Props: size depends on component count and injected-side cache policy (snapshots are pruned where a node is not expanded and not needed).

To avoid blocking the page main thread, prop serialization applies limits including:

  • time budget per serialization pass;
  • max nesting depth and array/object size;
  • long string truncation and a cap on nodes per response.

Very large or cyclic structures may appear incomplete or marked as truncated—expected safeguard behavior.

How it works

When collection starts

The Props module attaches after Vue is detected on the page (unlike Network, which starts with the general inspector script). Until Vue initializes or the inspector is injected in the tab, the component list stays empty.

After the first successful load you can refresh manually (Refresh) or on a schedule (auto refresh in Options).

What is monitored

  1. Structure — walking Vue instances yields a flat list with metadata (name, label when present, element binding, received and declared counts without full values every frame).
  2. Props on selection — full values load when you open a card (lazy).

The same channel refreshes after Toolbar Refresh, respecting the active blacklist (name filtering during collection—see Blacklist).

Messaging model

The panel does not read Vue memory directly: it sends a message to the page; injected code walks instances and returns serialized data.

Simplified flow:

js
// Illustration: UI requests the component list; the page scanner builds structure.
const response = await bridge.send({
  type: 'COLLECT_VUE_COMPONENTS',
  forceRefresh: true,
  blacklist: { active: ['SomeNoise'], inactive: [] },
})
// response.components — names, uid, prop counts, Root Element strings…
// Full prop payloads load separately when a card opens (lazy).

This separates the light table from heavy prop reads for the selected node only.

See also

GPL-3.0 licensed.