Skip to content

Pro Component Provider ​

ProComponentProvider 是一个提供全局组件配置的容器组件。通过该组件可以统一配置所有 Pro 组件的默认属性。

何时使用 ​

  • 需要为整个应用中的 Pro 组件设置统一的默认属性
  • 希望减少重复配置,提高开发效率

API ​

Props ​

参数名说明类型默认值
componentVars需要 Provide 下发的属性默认配置ComponentVars-
componentMap需要动态注册的自定义组件或欲覆盖的原生组件表ComponentMap-
locale按 key 覆盖内置文案(如查询/重置/序号等)Partial<ProLocale>-

ComponentVars 配置项 ​

ComponentVars 包含以下可配置组件:

  • pro-table: ProTable 组件默认配置
  • pro-form: ProForm 组件默认配置
  • pro-form-item: ProFormItem 组件默认配置
  • 各种表单字段组件如 input, select, date-picker 等

每种组件可以配置其对应的 Ant Design Vue 组件属性。

组件动态注册与覆盖 (componentMap) ​

除了提供默认配置,ProComponentProvider 还允许你将自己的业务组件注入到表单库系统内,或者拦截并覆盖已有的基础组件。

示例用法 ​

vue
<script setup lang="ts">
import { ProComponentProvider } from 'antd-vue-pro';
import MyUpload from '@/components/MyUpload.vue';
import MagicInput from '@/components/MagicInput.vue';

const customMap = {
  // 1. 扩充新的自定义组件标识
  'my-upload': MyUpload,

  // 2. 覆盖并接管内置的 input 渲染
  input: MagicInput,
};
</script>

<template>
  <!-- 向 Provider 下的作用域注入组件 -->
  <ProComponentProvider :component-map="customMap">
    <!-- 内部的 ProForm 此时可以通过 component: 'my-upload' 渲染新组件 -->
    <RouterView />
  </ProComponentProvider>
</template>

注意:注册组件解决的是运行时渲染问题;如果你需要开发时 TypeScript 类型提示(比如配置 component: 'my-upload' 后自动带出 Params 校验),请参考 ProForm 文档中的 高级:TypeScript 类型推导与覆盖 章节进行环境类型扩展。

内置文案语言切换 (locale) ​

组件内置文案(查询、重置、序号、占位符、共 X 条等)默认跟随宿主应用 a-config-provider :locale 自动切换,内置 zh-CN / zh-TW / en-US 三套语言,无需额外配置。

如需覆盖个别文案,可通过 locale prop 按 key 覆盖(未覆盖的 key 仍跟随语言切换):

vue
<template>
  <ProComponentProvider :locale="{ 'table.query': '搜索' }">
    <RouterView />
  </ProComponentProvider>
</template>

使用示例 ​