STextField <s-text-field>
Un campo de texto de una línea con etiqueta, placeholder, error de validación y texto de ayuda. STextField es el wrapper de Vue 3 tipado del web component <s-text-field> de Shopify Polaris.
ts
import { STextField } from 'polaris-vue-elements'Buenas prácticas
- Deja clara la entrada esperada. Escribe un
labely unplaceholderque indiquen a los comerciantes qué introducir y en qué formato. Una redacción vaga lleva a suposiciones, errores de validación y frustración. - Añade contexto con un prefijo o sufijo. Usa
prefixysuffixpara mostrar el tipo de valor y su formato, por ejemplo si los comerciantes deben escribir una URL completa o solo un subdominio, o un precio completo o solo el importe. - Basa las restricciones en requisitos reales. Define
minLength,maxLengthy las reglas de validación según las necesidades reales del negocio en lugar de números arbitrarios, e indica a los comerciantes cuáles son. - Da comentarios pronto y de forma específica. Haz saber a los comerciantes si su entrada es válida mientras escriben, no solo al enviar. Cuando no lo sea, usa
errorpara explicar qué está mal y cómo corregirlo.
vue
<STextField label="Store address" prefix="https://" suffix=".myshopify.com" />Consulta las buenas prácticas de Shopify para <s-text-field> (en inglés) para ver todas las recomendaciones.
Ejemplo
Value: (empty)
vue
<script setup>
import { ref } from 'vue'
import { STextField } from 'polaris-vue-elements'
const value = ref('')
</script>
<template>
<STextField label="Your name" placeholder="Jane Doe" v-model="value" />
<p>Value: {{ value }}</p>
</template>v-model
v-model en <STextField> se vincula a la propiedad value y escucha el event DOM input.
template
<STextField v-model="value" />equivale a:
template
<STextField :value="value" @input="value = $event.target.value" />Props
| Prop | Tipo | Descripción |
|---|---|---|
autocomplete | "language" | "organization" | "name" | "additional-name" | "address-level1" | "address-level2" | "address-level3" | "address-level4" … (84 more) | Una indicación sobre el contenido previsto del campo. Cuando se establece en on (el valor predeterminado), esta propiedad indica que el campo debe admitir el autocompletado, pero no tienes más información semántica sobre el contenido previsto. Cuando se establece en off, indicas que este campo contiene información confidencial o contenido que nunca se guarda, como los códigos de un solo uso. Como alternativa, puedes proporcionar un valor que describa los datos concretos que quieres que se introduzcan en este campo durante el autocompletado. |
defaultValue | string | El valor predeterminado del campo. |
details | any | Texto adicional que aporta contexto u orientación sobre el campo. Este texto se muestra junto con el campo y su etiqueta para ofrecer más información o instrucciones al usuario. También se expone a los usuarios de lectores de pantalla. |
disabled | boolean | Desactiva el campo e impide cualquier interacción. |
error | any | Indica un error al usuario. El campo recibe un tratamiento estilístico específico para comunicar problemas que deben resolverse de inmediato. |
icon | "cart-filled" | "channels-filled" | "home-filled" | "order-filled" | "person-filled" | "product-filled" | "color" | "info" … (597 more) | El tipo de icono que se muestra en el campo. |
id | string | Un identificador único para el elemento. |
label | any | Contenido que se usa como etiqueta del campo. |
labelAccessibilityVisibility | "visible" | "exclusive" | Cambia la visibilidad de la etiqueta del componente. - visible: la etiqueta es visible para todos los usuarios. - exclusive: la etiqueta se oculta visualmente, pero permanece en el árbol de accesibilidad. |
maxLength | number | Especifica el número máximo de caracteres permitidos. |
minLength | number | Especifica el número mínimo de caracteres permitidos. |
name | string | Un identificador del campo que es único dentro del formulario contenedor más cercano. |
placeholder | string | Una breve indicación que describe el valor esperado del campo. |
prefix | string | Un valor que se muestra justo antes de la parte editable del campo. Es útil para mostrar una parte implícita del valor, como "https://" o "+353". El usuario no puede editarlo y no se incluye en el valor del campo. Es posible que no se muestre hasta que el usuario haya interactuado con el campo. Por ejemplo, una etiqueta en línea puede ocupar el lugar del prefijo hasta que el usuario enfoque el campo. |
readOnly | boolean | El usuario no puede editar el campo. Puede recibir el foco y los lectores de pantalla lo anuncian. |
required | boolean | Si el campo requiere un valor. Este requisito añade valor semántico al campo, pero no hará que aparezca un error automáticamente. Si quieres mostrar un error cuando este campo esté vacío, puedes hacerlo con la propiedad error. |
suffix | string | Un valor que se muestra justo después de la parte editable del campo. Es útil para mostrar una parte implícita del valor, como "@shopify.com" o "%". El usuario no puede editarlo y no se incluye en el valor del campo. Es posible que no se muestre hasta que el usuario haya interactuado con el campo. Por ejemplo, una etiqueta en línea puede ocupar el lugar del sufijo hasta que el usuario enfoque el campo. |
value | string | El valor actual del campo. Si se omite, el campo estará vacío. |
Algunas columnas de tipo de arriba están truncadas para facilitar la lectura; la unión completa está disponible en los tipos de TypeScript generados de la biblioteca (
src/lib/generated/types.ts).
Events
| Event | Tipo |
|---|---|
blur | FocusEvent |
change | Event |
focus | FocusEvent |
input | Event |
Escúchalos con listeners del estilo @blur en <STextField>.
Slots
| Slot | Descripción |
|---|---|
accessory | Contenido adicional que se muestra junto al campo de texto, normalmente un icono o un botón que ofrece una funcionalidad relacionada, como abrir un tooltip de ayuda o activar un modal. |
details | |
error |