---
url: "https://vueda.dev/v3/reference/api/js/use/useFieldRenderer/functions/useFieldRenderer.md"
title: "useFieldRenderer"
---

# useFieldRenderer

## Overview

A helper composable that computes the derived props and metadata needed to render a field & widget pair,
 via FieldRenderer.

This composable abstracts out logic around:
 - Slot scoping (e.g. field(x), widget(y), default)
 - Widget and field component resolution
 - Prop merging across field context, object-grid slots, and attribute passthrough
 - Theme resolution for `themeOverride` values
 - Auto-naming the field input for context or standalone usage

## Signature

`useFieldRenderer(props, attrs, slots, fieldSetContext)`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| <span id="param-props">props</span> | [FieldRendererProps](/v3/reference/api/js/use/useFieldRenderer/types/FieldRendererProps.md) | yes | The props from the FieldRenderer component. |
| <span id="param-attrs">attrs</span> | `object` | yes | Raw `useAttrs()` output (e.g. class, id, etc.). |
| <span id="param-slots">slots</span> | `Readonly` | yes | Raw `useSlots()` output, for detecting scoped slot names. |
| <span id="param-fieldSetContext">fieldSetContext</span> | `any` | no | The injected field context if inside a fieldset; used to compute full path names. |

### Returns

`any`

- The reactive field renderer instance.

## Source

`client/lib/use/useFieldRenderer.js:61`
