Forms
useFormFieldMethods
Composable interno per metodi pubblici esposti dai campi form (focus, blur, select, setSelectionRange).
Composable interno — utilizzato dai componenti form che espongono metodi tramite
defineExpose.
Firma TypeScript
export function useFormFieldMethods(options: UseFormFieldMethodsOptions): FormFieldMethodsResult
export interface UseFormFieldMethodsOptions {
inputRef: Ref<HTMLInputElement | HTMLTextAreaElement | null>;
}
export interface FormFieldMethodsResult {
focus: () => void;
blur: () => void;
select: () => void;
setSelectionRange: (start: number, end: number, direction?: 'forward' | 'backward' | 'none') => void;
getSelectionStart: () => number | null;
getSelectionEnd: () => number | null;
scrollIntoView: (options?: ScrollIntoViewOptions) => void;
}
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
options.inputRef | Ref<HTMLInputElement | HTMLTextAreaElement | null> | Ref all'elemento input nativo |
Valore di Ritorno
| Proprietà | Tipo | Descrizione |
|---|---|---|
focus | () => void | Porta il focus sull'input |
blur | () => void | Rimuove il focus dall'input |
select | () => void | Seleziona tutto il testo |
setSelectionRange | (start, end, direction?) => void | Imposta un range di selezione |
getSelectionStart | () => number | null | Posizione inizio selezione |
getSelectionEnd | () => number | null | Posizione fine selezione |
scrollIntoView | (options?) => void | Scrolla l'input nella viewport |
Esempio
const inputRef = ref<HTMLInputElement | null>(null)
const { focus, blur, select } = useFormFieldMethods({ inputRef })
// Esponi i metodi al componente padre
defineExpose({ focus, blur, select })
// Nel componente padre
const inputRef = ref()
inputRef.value?.focus()
inputRef.value?.select()
Note
- Tutti i metodi sono no-op se
inputRef.valuee null (componente non ancora montato o distrutto). - Funzione utility esportata:
getBasicExposeMethods(methods)che restituisce solo{ focus, blur, select }per uso semplificato condefineExpose.