快速开始
我们推荐在Vue3工程化项目中使用需要自定义配置的三方插件统一创建plugins目录分区管理,从而分担main.ts的代码量压力。
安装
shell
# 支持pnpm/yarn/cnpm/npm,推荐使用pnpm
$ pnpm i wyfe-ivue推荐用法
1.1、创建plugins/modules/WyfeIVue.ts:
js
import { type App } from 'vue'
import 'wyfe-ivue/dist/wyfe-ivue.css'
import * as WyfeIVue from 'wyfe-ivue'
// 如需使用UseSvgIcon组件需要手动引入svg图标注册脚本 并且需在vite.config.ts中配置插件
import 'virtual:svg-icons-register'
// 如需使用UseIconfont组件需要手动引入iconfont图标链接地址
import { dynamicLoadFile } from '@/utils'
import { getConfig } from '@/config'
// 引入iconfont font图标
dynamicLoadFile(getConfig('ICONFONT_URL.FONT'))
// 引入iconfont symbol图标
dynamicLoadFile(getConfig('ICONFONT_URL.SYMBOL'), 'js')
export default (app: App) => {
for (const [key, component] of Object.entries(WyfeIVue)) {
key.startsWith('Use') && app.component(key, component)
}
}1.2、创建plugins/index.ts:
js
import { type App } from 'vue'
const modules: Record<string, any> = import.meta.glob('./modules/*.ts', {
eager: true
})
const plugins: Record<string, any> = {}
for (const key in modules) {
plugins[
(key.split('/')[key.split('/').length - 1] as any).split('.')[0] as any
] = modules[key].default
}
export default (app: App) => {
Object.keys(plugins).forEach(key => {
plugins[key](app)
})
}2、在main.ts中引入使用:
js
import plugins from './plugins'
createApp(App).use(plugins).mount('#app')3、在页面中使用(以使用UseElButton为例):
vue
<script setup lang="ts">
const handleBtnClick = () => {
console.log('按钮被点击了')
}
</script>
<template>
<UseElButton btnText="保存" @onClick="handleBtnClick"/>
</template>特别说明
1、为提供一致的使用体验,本组件库组件皆以Use开头。
2、本组件库中以UseEl开头的组件皆为对ElementPlus组件的二次封装,因此除本组件库组件提供的特有API外,其它API与ElementPlus完全保持一致,在减少使用心智负担的同时最大程度提升开发效率和编码效率!