带类型的 props 与 events
每个 wrapper 的 props 和 events 都由 Shopify 官方的 Custom Elements Manifest 生成,因此自动补全和类型检查与真实的组件 API 完全一致。
基于 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,无需重新学习。
每个 wrapper 的 props 和 events 都由 Shopify 官方的 Custom Elements Manifest 生成,因此自动补全和类型检查与真实的组件 API 完全一致。
文本框、复选框、开关、下拉选择、选项列表、日期选择器等组件都开箱支持 v-model,并为每个元素映射到正确的底层 prop/event 组合。
未知的 prop 会通过 $attrs 直接透传,slot 内容也会原样转发。旧版本的 wrapper 不会破坏现有用法,只是缺少新功能的类型。
组件和类型定义直接由 Shopify 的 Custom Elements Manifest 生成,使 wrapper 的接口始终与 CDN 上的 Polaris runtime 保持一致。
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 加载。
<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>62 个组件,一次导入。