Skip to content

STextField <s-text-field> ​

Ein einzeiliges Texteingabefeld mit Label, Platzhalter, Validierungsfehler und Hilfetext. STextField ist ein typisierter Vue-3-Wrapper für die Shopify Polaris Web Component <s-text-field>.

ts
import { STextField } from 'polaris-vue-elements'

Best Practices ​

  • Die erwartete Eingabe offensichtlich machen. Schreiben Sie ein label und einen placeholder, die Händlern sagen, was in welchem Format einzugeben ist. Vage Formulierungen führen zu Raten, Validierungsfehlern und Frust.
  • Kontext mit Präfix oder Suffix ergänzen. Verwenden Sie prefix und suffix, um Art und Format des Werts zu zeigen, etwa ob Händler eine vollständige URL oder nur eine Subdomain, einen vollständigen Preis oder nur den Betrag eingeben sollen.
  • Einschränkungen an echten Anforderungen ausrichten. Legen Sie minLength, maxLength und Validierungsregeln nach tatsächlichen geschäftlichen Erfordernissen fest statt nach willkürlichen Zahlen, und teilen Sie sie Händlern mit.
  • Früh und konkret Feedback geben. Zeigen Sie Händlern schon während der Eingabe, ob sie gültig ist, nicht erst beim Absenden. Ist sie es nicht, erklären Sie mit error, was falsch ist und wie es sich beheben lässt.
vue
<STextField label="Store address" prefix="https://" suffix=".myshopify.com" />

Die vollständigen Richtlinien finden sich in Shopifys Best Practices für <s-text-field> (auf Englisch).

Beispiel ​

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 auf <STextField> bindet die Property value und lauscht auf das DOM-Event input.

template
<STextField v-model="value" />

entspricht:

template
<STextField :value="value" @input="value = $event.target.value" />

Props ​

PropTypBeschreibung
autocomplete"language" | "organization" | "name" | "additional-name" | "address-level1" | "address-level2" | "address-level3" | "address-level4" … (84 more)Ein Hinweis auf den vorgesehenen Inhalt des Felds. Bei on (Standard) gibt diese Eigenschaft an, dass das Feld Autofill unterstützen soll, ohne dass weitere semantische Informationen zum vorgesehenen Inhalt vorliegen. Mit off wird angegeben, dass das Feld sensible Informationen oder Inhalte enthält, die nie gespeichert werden, etwa Einmalcodes. Alternativ kann ein Wert angegeben werden, der die konkreten Daten beschreibt, die beim Autofill in dieses Feld eingetragen werden sollen.
defaultValuestringDer Standardwert des Feldes.
detailsanyZusätzlicher Text, der Kontext oder Hilfestellung zum Feld bietet. Dieser Text wird zusammen mit dem Feld und seinem Label angezeigt, um dem Nutzer weitere Informationen oder Anweisungen zu geben. Er wird auch Screenreader-Nutzern zugänglich gemacht.
disabledbooleanDeaktiviert das Feld und verhindert jegliche Interaktion.
erroranyZeigt dem Nutzer einen Fehler an. Das Feld erhält eine besondere Gestaltung, um Probleme zu kennzeichnen, die sofort behoben werden müssen.
icon"cart-filled" | "channels-filled" | "home-filled" | "order-filled" | "person-filled" | "product-filled" | "color" | "info" … (597 more)Die Art des Icons, das im Feld angezeigt wird.
idstringEine eindeutige Kennung für das Element.
labelanyInhalt, der als Label des Felds verwendet wird.
labelAccessibilityVisibility"visible" | "exclusive"Ändert die Sichtbarkeit des Labels der Komponente. - visible: Das Label ist für alle Nutzer sichtbar. - exclusive: Das Label ist visuell ausgeblendet, bleibt aber im Accessibility Tree.
maxLengthnumberGibt die maximal erlaubte Anzahl an Zeichen an.
minLengthnumberGibt die minimal erlaubte Anzahl an Zeichen an.
namestringEine Kennung für das Feld, die innerhalb des nächsten umschließenden Formulars eindeutig ist.
placeholderstringEin kurzer Hinweis, der den erwarteten Wert des Felds beschreibt.
prefixstringEin Wert, der direkt vor dem bearbeitbaren Teil des Felds angezeigt wird. Nützlich, um einen implizierten Teil des Werts anzuzeigen, etwa "https://" oder "+353". Er kann vom Nutzer nicht bearbeitet werden und ist nicht im Wert des Felds enthalten. Er wird möglicherweise erst angezeigt, nachdem der Nutzer mit dem Input interagiert hat. Beispielsweise kann ein Inline-Label den Platz des Präfix einnehmen, bis der Nutzer den Input fokussiert.
readOnlybooleanDas Feld kann vom Benutzer nicht bearbeitet werden. Es ist fokussierbar und wird von Screenreadern angesagt.
requiredbooleanOb das Feld einen Wert benötigt. Diese Anforderung verleiht dem Feld semantische Bedeutung, führt aber nicht automatisch zur Anzeige eines Fehlers. Wenn ein Fehler angezeigt werden soll, sobald dieses Feld leer ist, verwenden Sie dafür die Eigenschaft error.
suffixstringEin Wert, der direkt nach dem bearbeitbaren Teil des Felds angezeigt wird. Nützlich, um einen implizierten Teil des Werts anzuzeigen, etwa "@shopify.com" oder "%". Er kann vom Nutzer nicht bearbeitet werden und ist nicht im Wert des Felds enthalten. Er wird möglicherweise erst angezeigt, nachdem der Nutzer mit dem Input interagiert hat. Beispielsweise kann ein Inline-Label den Platz des Suffix einnehmen, bis der Nutzer den Input fokussiert.
valuestringDer aktuelle Wert des Feldes. Wird er weggelassen, ist das Feld leer.

Einige Typspalten oben wurden zur besseren Lesbarkeit gekürzt; die vollständigen Unions finden sich in den generierten TypeScript-Typen der Bibliothek (src/lib/generated/types.ts).

Events ​

EventTyp
blurFocusEvent
changeEvent
focusFocusEvent
inputEvent

Auf diese Events lauschen Sie mit Listenern im Stil von @blur auf <STextField>.

Slots ​

SlotBeschreibung
accessoryZusätzlicher Inhalt neben dem Textfeld, typischerweise ein Icon oder Button mit verwandter Funktion, etwa zum Öffnen eines Hilfe-Tooltips oder zum Auslösen eines Modals.
details
error

Veröffentlicht unter der MIT-Lizenz. Vue-Logo von Evan You, CC BY-NC-SA 4.0.