Vue封装全局SVG组件

1.SVG图标配置

1.安装插件

npm install vite-plugin-svg-icons -D

2.Vite.config.ts中配置

import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
export default () => {
  return {
    plugins: [
      createSvgIconsPlugin({
        // Specify the icon folder to be cached
        iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
        // Specify symbolId format
        symbolId: 'icon-[dir]-[name]',
      }),
    ],
  }
}

3.main.ts中导入

//SVG插件必须的配置
import 'virtual:svg-icons-register'

4.组件内使用

1.下载svg代码

阿里巴巴图标库或者其他图标库下载SVG代码,复制到对应的文件中

Vue封装全局SVG组件_第1张图片

2.SVG使用




2.SVG组件封装

1.创建组件文件

Vue封装全局SVG组件_第2张图片

2.封装组件 






3.在其他组件使用





3.SVG组件注册为全局组件

1.创建文件

Vue封装全局SVG组件_第3张图片

2.注册全局组件

//引入全局组件
import SvgIcon from './SvgIcon/index.vue';
import type { App, Component } from 'vue';
//全局对象
const components: { [name: string]: Component } = { SvgIcon };
//对外暴露插件对象
export default {
    //insatll方法
    install(app: App) {
        //注册项目为全局组件(可注册多个)
        Object.keys(components).forEach((key: string) => {
            //注册全局组件
            app.component(key, components[key]);
        })
    }
}

3.引入到main.ts

import gloablComponent from './components/index';
app.use(gloablComponent);

4.组件中使用





你可能感兴趣的:(vue.js,前端,javascript)