Skip to content
Built for Shopify 的外观。 开箱即用。

Shopify Polaris.
现已为 Vue 3 提供类型。

基于 Shopify Polaris web components(s-button, s-text-field, s-modal, ...)的带类型 Vue 3 组件,无需再学一套 Vue 专用的设计系统。

<STextField v-model="name" />
<SButton variant="primary">Save</SButton>

Shopify Polaris 的 Vue 3 wrapper

完整的 Polaris,无需重新学习。

62

带类型的 props 与 events

每个 wrapper 的 props 和 events 都由 Shopify 官方的 Custom Elements Manifest 生成,因此自动补全和类型检查与真实的组件 API 完全一致。

17

17 个表单组件支持 v-model

文本框、复选框、开关、下拉选择、选项列表、日期选择器等组件都开箱支持 v-model,并为每个元素映射到正确的底层 prop/event 组合。

平滑降级

未知的 prop 会通过 $attrs 直接透传,slot 内容也会原样转发。旧版本的 wrapper 不会破坏现有用法,只是缺少新功能的类型。

与 manifest 保持同步

组件和类型定义直接由 Shopify 的 Custom Elements Manifest 生成,使 wrapper 的接口始终与 CDN 上的 Polaris runtime 保持一致。

为 Vue 提供类型的 Polaris web components ​

Shopify 的 Polaris web components (<s-button>、<s-text-field>、<s-modal> 等)可以在任何框架中使用,但在 Vue 模板中它们只是 没有类型的自定义元素:没有自动补全,没有 prop 检查,也没有 v-model。polaris-vue-elements 将每个元素封装为一个轻量的 Vue 3 组件,这些组件由 Shopify 的 Custom Elements Manifest 生成, 而 Polaris runtime 仍从 Shopify 的 CDN 加载。

vue
<script setup lang="ts">
import { ref } from 'vue'
import { SButton, STextField } from 'polaris-vue-elements'

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

<template>
  <STextField v-model="name" label="Store name" />
  <SButton variant="primary">Save</SButton>
</template>

所有组件 ​

基于 MIT 许可证发布。Vue 标志由 Evan You 设计,采用 CC BY-NC-SA 4.0 许可。