STextField <s-text-field>
Label, placeholder, validation error और help text वाला एक single-line text input। STextField Shopify के Polaris <s-text-field> web component का typed Vue 3 wrapper है।
ts
import { STextField } from 'polaris-vue-elements'Best practices
- अपेक्षित input को स्पष्ट बनाएँ। ऐसा
labelऔरplaceholderलिखें जो merchants को बताए कि क्या दर्ज करना है और किस format में। अस्पष्ट शब्दों से अनुमान, validation errors और झुंझलाहट होती है। - Prefix या suffix से context जोड़ें। Value का प्रकार और उसका format दिखाने के लिए
prefixऔरsuffixका उपयोग करें, उदाहरण के लिए merchants को पूरा URL टाइप करना है या केवल subdomain, या पूरी कीमत या केवल राशि। - Constraints को वास्तविक आवश्यकताओं पर आधारित रखें।
minLength,maxLengthऔर validation rules को मनमानी संख्याओं के बजाय वास्तविक business ज़रूरतों के अनुसार सेट करें, और merchants को बताएँ कि वे क्या हैं। - जल्दी और विशिष्ट feedback दें। Merchants को केवल submit करने पर नहीं, बल्कि टाइप करते समय ही बताएँ कि उनका input मान्य है या नहीं। जब वह मान्य न हो, तो
errorसे समझाएँ कि क्या गलत है और उसे कैसे ठीक करें।
vue
<STextField label="Store address" prefix="https://" suffix=".myshopify.com" />सभी सुझावों के लिए <s-text-field> के लिए Shopify की best practices (अंग्रेज़ी में) देखें।
उदाहरण
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
<STextField> पर v-model value property से bind होता है और input DOM event को सुनता है।
template
<STextField v-model="value" />इसके बराबर है:
template
<STextField :value="value" @input="value = $event.target.value" />Props
| Prop | Type | विवरण |
|---|---|---|
autocomplete | "language" | "organization" | "name" | "additional-name" | "address-level1" | "address-level2" | "address-level3" | "address-level4" … (84 more) | field में अपेक्षित content का संकेत। जब इसे on (default) पर सेट किया जाता है, तो यह property बताती है कि field को autofill सपोर्ट करना चाहिए, लेकिन अपेक्षित content के बारे में आपके पास कोई और semantic जानकारी नहीं है। off पर सेट करके आप बताते हैं कि इस field में संवेदनशील जानकारी है, या ऐसा content है जो कभी save नहीं होता, जैसे one-time codes। इसके बजाय, आप ऐसी value भी दे सकते हैं जो बताए कि autofill के दौरान इस field में कौन-सा विशेष डेटा भरा जाना चाहिए। |
defaultValue | string | field का डिफ़ॉल्ट मान। |
details | any | field के लिए संदर्भ या मार्गदर्शन देने वाला अतिरिक्त text। user को अधिक जानकारी या निर्देश देने के लिए यह text field और उसके label के साथ दिखाया जाता है। यह screen reader users को भी उपलब्ध कराया जाएगा। |
disabled | boolean | field को disable करता है, जिससे कोई भी interaction संभव नहीं रहता। |
error | any | user को error बताएँ। field को एक विशेष style दिया जाएगा, ताकि ऐसी समस्याएँ बताई जा सकें जिन्हें तुरंत हल करना ज़रूरी है। |
icon | "cart-filled" | "channels-filled" | "home-filled" | "order-filled" | "person-filled" | "product-filled" | "color" | "info" … (597 more) | field में दिखाए जाने वाले icon का type। |
id | string | element के लिए एक unique identifier। |
label | any | field label के रूप में उपयोग होने वाला content। |
labelAccessibilityVisibility | "visible" | "exclusive" | component के label की visibility बदलता है। - visible: label सभी users को दिखाई देता है। - exclusive: label दृश्य रूप से छिपा रहता है लेकिन accessibility tree में बना रहता है। |
maxLength | number | अनुमत characters की अधिकतम संख्या बताता है। |
minLength | number | अनुमत characters की न्यूनतम संख्या बताता है। |
name | string | field के लिए identifier, जो सबसे नज़दीकी containing form के भीतर unique हो। |
placeholder | string | एक छोटा संकेत जो field की अपेक्षित value बताता है। |
prefix | string | field के editable हिस्से के ठीक पहले दिखाई जाने वाली value। यह value के किसी निहित हिस्से को दिखाने के लिए उपयोगी है, जैसे "https://" या "+353"। user इसे edit नहीं कर सकता, और यह field की value में शामिल नहीं होती। हो सकता है कि यह तब तक न दिखे जब तक user ने input के साथ interact न किया हो। उदाहरण के लिए, user के input पर focus करने तक prefix की जगह कोई inline label दिख सकता है। |
readOnly | boolean | उपयोगकर्ता field को edit नहीं कर सकता। यह focus हो सकता है और screen readers द्वारा announce किया जाएगा। |
required | boolean | क्या field के लिए कोई मान ज़रूरी है। यह आवश्यकता field में semantic अर्थ जोड़ती है, लेकिन इससे अपने आप कोई error नहीं दिखेगा। यदि आप चाहते हैं कि यह field खाली होने पर error दिखे, तो आप error property के साथ ऐसा कर सकते हैं। |
suffix | string | field के editable हिस्से के ठीक बाद दिखाई जाने वाली value। यह value के किसी निहित हिस्से को दिखाने के लिए उपयोगी है, जैसे "@shopify.com" या "%"। user इसे edit नहीं कर सकता, और यह field की value में शामिल नहीं होती। हो सकता है कि यह तब तक न दिखे जब तक user ने input के साथ interact न किया हो। उदाहरण के लिए, user के input पर focus करने तक suffix की जगह कोई inline label दिख सकता है। |
value | string | field का वर्तमान मान। छोड़ देने पर field खाली रहेगा। |
पढ़ने में आसानी के लिए ऊपर के कुछ type columns छोटे किए गए हैं; पूरा union library के generate किए गए TypeScript types (
src/lib/generated/types.ts) में उपलब्ध है।
Events
| Event | Type |
|---|---|
blur | FocusEvent |
change | Event |
focus | FocusEvent |
input | Event |
इन्हें <STextField> पर @blur जैसे listeners से सुनें।
Slots
| Slot | विवरण |
|---|---|
accessory | text field के साथ दिखाया जाने वाला अतिरिक्त content, आमतौर पर एक icon या button जो संबंधित functionality देता है, जैसे help tooltip खोलना या modal trigger करना। |
details | |
error |