Skip to content

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타입설명
autocompletestring필드에 입력될 콘텐츠에 대한 힌트입니다. on(기본값)으로 설정하면 필드가 자동 완성을 지원해야 하지만 입력될 콘텐츠에 대한 추가적인 의미 정보는 없음을 나타냅니다. off로 설정하면 이 필드에 민감한 정보나 일회용 코드처럼 저장되지 않는 콘텐츠가 들어간다는 것을 나타냅니다. 또는 자동 완성 시 이 필드에 입력되기를 원하는 구체적인 데이터를 설명하는 값을 지정할 수도 있습니다.
currencyCode"auto" | "USD" | "EUR" | "GBP" | "CAD" | "AFN" | "ALL" | "DZD" … (154 more)필드의 통화 코드입니다. 'auto'로 설정하면 필드에 스토어의 통화 코드가 표시됩니다. 스토어에 설정된 통화 코드가 없으면 명시적인 '값 없음'을 뜻하는 'XXX'로 결정됩니다. 이 값은 스토어의 전역 통화 코드와 일치하므로, 필드의 통화 코드를 알아야 한다면 해당 API에서 값을 읽을 수 있습니다.
defaultValuestring필드의 기본값입니다.
detailsany필드에 대한 맥락이나 안내를 제공하는 추가 텍스트입니다. 이 텍스트는 필드 및 레이블과 함께 표시되어 사용자에게 더 많은 정보나 지침을 제공합니다. 스크린 리더 사용자에게도 노출됩니다.
disabledboolean필드를 비활성화하여 모든 상호작용을 막습니다.
errorany사용자에게 오류를 표시합니다. 즉시 해결해야 하는 문제를 전달하기 위해 필드에 특정한 스타일이 적용됩니다.
idstring요소의 고유 식별자입니다.
labelany필드 레이블로 사용할 콘텐츠입니다.
labelAccessibilityVisibility"visible" | "exclusive"컴포넌트 레이블의 표시 여부를 변경합니다. - visible: 레이블이 모든 사용자에게 표시됩니다. - exclusive: 레이블이 시각적으로는 숨겨지지만 접근성 트리에는 남아 있습니다.
maxnumber필드에서 허용하는 가장 큰 소수 또는 정수입니다. step과 함께 사용하면 값이 최댓값으로 내림됩니다. 참고: 사용자는 여전히 키보드로 최댓값보다 큰 숫자를 입력할 수 있습니다. 적절한 유효성 검사를 추가하는 것은 개발자의 몫입니다.
minnumber필드에서 허용하는 가장 작은 소수 또는 정수입니다. step과 함께 사용하면 값이 최솟값으로 올림됩니다. 참고: 사용자는 여전히 키보드로 최솟값보다 작은 숫자를 입력할 수 있습니다. 적절한 유효성 검사를 추가하는 것은 개발자의 몫입니다.
namestring가장 가까운 상위 폼 안에서 고유한 필드 식별자입니다.
placeholderstring필드에 입력할 값을 설명하는 짧은 힌트입니다.
readOnlyboolean사용자가 필드를 편집할 수 없습니다. 포커스는 가능하며 스크린 리더가 읽어 줍니다.
requiredboolean필드에 값이 필요한지 여부입니다. 이 요구 사항은 필드에 시맨틱 의미를 더하지만 자동으로 오류를 표시하지는 않습니다. 이 필드가 비어 있을 때 오류를 표시하려면 error 속성을 사용하면 됩니다.
valuestring

위의 일부 타입 열은 읽기 쉽도록 축약되었습니다. 전체 union은 라이브러리에서 생성된 TypeScript 타입(src/lib/generated/types.ts)에 있습니다.

Events ​

Event타입
blurFocusEvent
changeEvent
focusFocusEvent
inputEvent

<SMoneyField>에서 @blur 형식의 리스너로 이 events를 수신하세요.

Slots ​

Slot설명
details
error

MIT 라이선스로 배포됩니다. Vue 로고: Evan You, CC BY-NC-SA 4.0.