Skip to content

SUrlField <s-url-field> ​

Web アドレス用のテキスト入力。 SUrlField は、Shopify Polaris の <s-url-field> web component 向けの型付き Vue 3 wrapper です。

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

ベストプラクティス ​

  • URL は自分で検証する。 ブラウザに組み込まれた URL の検証は最小限で、ブラウザによっても異なるため、構造、許可するプロトコル、ユースケースで受け付ける形式について独自のチェックを追加します。
  • 期待する形式を示す。 プロトコルを含めるべきか、どのプロトコルが許可されるか、どんな種類の URL が必要かをマーチャントに伝えます。placeholder に完全な URL の例を入れると、それが明確になります。
  • プロトコルがない場合の扱いを決める。 マーチャントは https:// を省略しがちです。自動で補うのか、プロトコルなしの URL を受け付けるのか、何が足りないかを説明する error を表示するのかを決めます。
  • URL の使われ方に合わせて長さの制限を選ぶ。 ブラウザやサーバーによって扱える最大長は異なるため、maxLength は任意の数値ではなく URL の用途先に基づいて設定し、重要な場合はその制限を明示します。
  • URL の用途を説明する。 商品画像の URL、SNS のプロフィールリンク、外部の参照先では、それぞれ求められるものが異なるため、label と details で用途を明確にします。
vue
<SUrlField label="Product image URL" placeholder="https://example.com/images/product.jpg" details="Link directly to a JPG or PNG file." />

詳しいガイダンスについては、<s-url-field> に関する Shopify のベストプラクティス(英語)を参照してください。

例 ​

Value: (empty)

vue
<script setup>
import { ref } from 'vue'
import { SUrlField } from 'polaris-vue-elements'

const value = ref('')
</script>

<template>
  <SUrlField label="Website" placeholder="https://example.com" v-model="value" />
  <p>Value: {{ value }}</p>
</template>

v-model ​

<SUrlField> の v-model は value プロパティにバインドされ、input DOM イベントを監視します。

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

これは次と同等です:

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

Props ​

Prop型説明
autocomplete"photo" | "url" | "impp" | "home impp" | "mobile impp" | "fax impp" | "pager impp" | "on" … (15 more)フィールドに入力される内容のヒントです。on(デフォルト)に設定すると、フィールドがオートフィルをサポートすべきであることを示しますが、想定される内容についてそれ以上の意味的な情報はありません。off に設定すると、このフィールドに機密情報、またはワンタイムコードのように保存されることのない内容が含まれることを示します。あるいは、オートフィル時にこのフィールドに入力してほしい具体的なデータを表す値を指定することもできます。
defaultValuestringフィールドのデフォルト値です。
detailsanyフィールドのコンテキストやガイダンスを提供する追加のテキストです。このテキストはフィールドとそのラベルとともに表示され、ユーザーに詳しい情報や手順を伝えます。スクリーンリーダーのユーザーにも公開されます。
disabledbooleanフィールドを無効にし、あらゆる操作を受け付けないようにします。
erroranyユーザーにエラーを示します。すぐに解決する必要がある問題を伝えるため、フィールドに特定のスタイルが適用されます。
idstring要素の一意な識別子です。
labelanyフィールドのラベルとして使用するコンテンツです。
labelAccessibilityVisibility"visible" | "exclusive"コンポーネントのラベルの表示状態を変更します。 - visible: ラベルはすべてのユーザーに表示されます。 - exclusive: ラベルは視覚的に非表示になりますが、アクセシビリティツリーには残ります。
maxLengthnumber入力できる最大文字数を指定します。
minLengthnumber入力できる最小文字数を指定します。
namestring最も近い親のフォーム内で一意となる、フィールドの識別子です。
placeholderstringフィールドに期待される値を説明する短いヒントです。
readOnlybooleanユーザーはフィールドを編集できません。フォーカスは可能で、スクリーンリーダーによって読み上げられます。
requiredbooleanフィールドに値が必要かどうか。この要件はフィールドにセマンティックな意味を加えますが、エラーが自動的に表示されるわけではありません。このフィールドが空のときにエラーを表示したい場合は、error プロパティを使用してください。
valuestringフィールドの現在の値です。省略した場合、フィールドは空になります。

上記の一部の型の列は読みやすさのために省略されています。完全な union はライブラリが生成する TypeScript の型(src/lib/generated/types.ts)で確認できます。

Events ​

Event型
blurFocusEvent
changeEvent
focusFocusEvent
inputEvent

これらのイベントは <SUrlField> 上で @blur 形式のリスナーで受け取れます。

Slots ​

Slot説明
details
error

MIT ライセンスの下で公開されています。Vue ロゴは Evan You によるもの(CC BY-NC-SA 4.0)。