SMoneyField <s-money-field>
금액을 입력하는 숫자 입력 필드입니다. SMoneyField은(는) Shopify Polaris <s-money-field> web component를 위한 타입이 지정된 Vue 3 wrapper입니다.
ts
import { SMoneyField } from 'polaris-vue-elements'모범 사례
min과max를 현실적인 한도로 설정하세요. 예를 들어 상품 가격은 0이 될 수 없도록min을 0.01로, 할인은 0부터 주문 총액까지로, 환불은 결제 금액을 상한으로 둘 수 있습니다. 값은 항상 비즈니스 규칙에 따라서도 검사합니다.error에 정확한 한도를 밝히세요. "Invalid amount" 대신 "Price must be at least $0.01"처럼 말해 판매자가 어떤 제약을 어겼는지 알 수 있게 합니다.label과placeholder에 통화 기호를 넣지 마세요. "$" 같은 기호를 추가하면 필드가 이미 처리하는 통화 형식과 충돌할 수 있습니다.- 금액의 용도에 따라 레이블을 붙이세요. "Product base price"나 "Discount amount"가 "Amount"나 "Price"보다 판매자에게 더 많은 정보를 줍니다.
- 편집할 때는
value를 미리 채우세요. 기존 값에는 현재 금액을 보여 주고, 새 항목에는 0.00이나 일반적인 가격 같은 합리적인 기본값을 고려합니다.
vue
<SMoneyField label="Product base price" :min="0.01" />전체 가이드는 <s-money-field>에 대한 Shopify 모범 사례(영어)를 참고하세요.
예시
Value: (empty)
vue
<script setup>
import { ref } from 'vue'
import { SMoneyField } from 'polaris-vue-elements'
const value = ref('')
</script>
<template>
<SMoneyField label="Price" currencyCode="USD" placeholder="0.00" v-model="value" />
<p>Value: {{ value }}</p>
</template>v-model
<SMoneyField>의 v-model은 value property에 바인딩되고 input DOM event를 수신합니다.
template
<SMoneyField v-model="value" />다음과 동일합니다:
template
<SMoneyField :value="value" @input="value = $event.target.value" />Props
| Prop | 타입 | 설명 |
|---|---|---|
autocomplete | string | 필드에 입력될 콘텐츠에 대한 힌트입니다. on(기본값)으로 설정하면 필드가 자동 완성을 지원해야 하지만 입력될 콘텐츠에 대한 추가적인 의미 정보는 없음을 나타냅니다. off로 설정하면 이 필드에 민감한 정보나 일회용 코드처럼 저장되지 않는 콘텐츠가 들어간다는 것을 나타냅니다. 또는 자동 완성 시 이 필드에 입력되기를 원하는 구체적인 데이터를 설명하는 값을 지정할 수도 있습니다. |
currencyCode | "auto" | "USD" | "EUR" | "GBP" | "CAD" | "AFN" | "ALL" | "DZD" … (154 more) | 필드의 통화 코드입니다. 'auto'로 설정하면 필드에 스토어의 통화 코드가 표시됩니다. 스토어에 설정된 통화 코드가 없으면 명시적인 '값 없음'을 뜻하는 'XXX'로 결정됩니다. 이 값은 스토어의 전역 통화 코드와 일치하므로, 필드의 통화 코드를 알아야 한다면 해당 API에서 값을 읽을 수 있습니다. |
defaultValue | string | 필드의 기본값입니다. |
details | any | 필드에 대한 맥락이나 안내를 제공하는 추가 텍스트입니다. 이 텍스트는 필드 및 레이블과 함께 표시되어 사용자에게 더 많은 정보나 지침을 제공합니다. 스크린 리더 사용자에게도 노출됩니다. |
disabled | boolean | 필드를 비활성화하여 모든 상호작용을 막습니다. |
error | any | 사용자에게 오류를 표시합니다. 즉시 해결해야 하는 문제를 전달하기 위해 필드에 특정한 스타일이 적용됩니다. |
id | string | 요소의 고유 식별자입니다. |
label | any | 필드 레이블로 사용할 콘텐츠입니다. |
labelAccessibilityVisibility | "visible" | "exclusive" | 컴포넌트 레이블의 표시 여부를 변경합니다. - visible: 레이블이 모든 사용자에게 표시됩니다. - exclusive: 레이블이 시각적으로는 숨겨지지만 접근성 트리에는 남아 있습니다. |
max | number | 필드에서 허용하는 가장 큰 소수 또는 정수입니다. step과 함께 사용하면 값이 최댓값으로 내림됩니다. 참고: 사용자는 여전히 키보드로 최댓값보다 큰 숫자를 입력할 수 있습니다. 적절한 유효성 검사를 추가하는 것은 개발자의 몫입니다. |
min | number | 필드에서 허용하는 가장 작은 소수 또는 정수입니다. step과 함께 사용하면 값이 최솟값으로 올림됩니다. 참고: 사용자는 여전히 키보드로 최솟값보다 작은 숫자를 입력할 수 있습니다. 적절한 유효성 검사를 추가하는 것은 개발자의 몫입니다. |
name | string | 가장 가까운 상위 폼 안에서 고유한 필드 식별자입니다. |
placeholder | string | 필드에 입력할 값을 설명하는 짧은 힌트입니다. |
readOnly | boolean | 사용자가 필드를 편집할 수 없습니다. 포커스는 가능하며 스크린 리더가 읽어 줍니다. |
required | boolean | 필드에 값이 필요한지 여부입니다. 이 요구 사항은 필드에 시맨틱 의미를 더하지만 자동으로 오류를 표시하지는 않습니다. 이 필드가 비어 있을 때 오류를 표시하려면 error 속성을 사용하면 됩니다. |
value | string |
위의 일부 타입 열은 읽기 쉽도록 축약되었습니다. 전체 union은 라이브러리에서 생성된 TypeScript 타입(
src/lib/generated/types.ts)에 있습니다.
Events
| Event | 타입 |
|---|---|
blur | FocusEvent |
change | Event |
focus | FocusEvent |
input | Event |
<SMoneyField>에서 @blur 형식의 리스너로 이 events를 수신하세요.
Slots
| Slot | 설명 |
|---|---|
details | |
error |