Skip to content

SUrlField <s-url-field> ​

用于输入网址的文本输入框。 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 的使用场景选择长度限制。 浏览器和服务器能处理的最大长度各不相同,因此请根据 URL 的目标位置(而不是随意的数字)设置 maxLength,并在限制重要时加以说明。
  • 说明 URL 的用途。 使用 label 和 details 说明用途,因为产品图片 URL、社交主页链接和外部参考链接各自需要不同的内容。
vue
<SUrlField label="Product image URL" placeholder="https://example.com/images/product.jpg" details="Link directly to a JPG or PNG file." />

参阅 Shopify 关于 <s-url-field> 的最佳实践(英文)以获取完整指南。

示例 ​

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 property,并监听 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字段的当前值。如果省略,字段将为空。

为便于阅读,上面部分类型列已被截断;完整的联合类型见库中生成的 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 许可。