Skip to content

componentsProvider ( 组件库全局配置 )

注意

该前置需要使用 @smartos-lib/core/componentsProvider 来单独引入

这是 SmartOS 组件库的前置

为什么需要这个前置呢 ?

SmartOS 组件库目前均是使用 Vue3Web Components 封装的组件, 拥有更好的跨项目兼容性, 并使用了 Element PlusNaive UI 作为 UI 库, 就有一些问题:

  • 目前使用该组件库的项目, 有 Vue2 的项目也有 Vue3 的项目, 不排除未来会在 Vanilla JS 的项目中使用该组件库
  • 如果在每个组件内置 Vue3Element PlusNaive UI, 那么每个组件将会很大
  • 如果不在组件内置 Vue3Element PlusNaive UI, 而是在项目中引入, 那无法保证依赖的版本一致, 可能会导致一些问题
  • 其他一些重复的依赖或样式

综上所述, 可以发现, 如果真的要实现跨项目运行, 那么, 还是得内置 Vue3Element PlusNaive UI 等依赖才能保证体验统一

至此, 就有了这个前置, 解决方案如下:

  • Vue3Element PlusNaive UI 依赖的代码, 内置在该前置中, 引入前置时, 会将依赖注入到全局上
  • 在其他组件打包时, 将排除相关依赖, 使用全局注入的依赖

目前, 前置并没有实际的功能, 仅仅是将依赖注入到全局, 日后可能会添加一些其他功能

目前, 该前置内置的内容有:

示例

引入前置, 再引入 SmartOS 组件,

vue
<template>
  <smart-docx-editor />
</template>

<script lang="ts" setup>
  import '@smartos-lib/core/componentsProvider';
  import '@smartos-lib/components/smart-docx-editor';
</script>