前端开发之中svg图标的使用和实例

前言

svg图片我们可在阿里云矢量图标库中下载
阿里云矢量图标库

效果图

在这里插入图片描述
在这里插入图片描述

1、安装插件

npm i svg-sprite-loader --save

2、vue3中使用

2.1、 在components文件夹中,创建公共类SvgIcon/index.vue

在这里插入图片描述

<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName" />
  </svg>
</template>
<script>
export default {
  name: 'SvgIcon',
  props: {
    iconClass: {
      type: String,
      required: true
    },
    className: {
      type: String,
      default: ''
    }
  },
  computed: {
    iconName () {
      return `#icon-${this.iconClass}`
    },
    svgClass () {
      if (this.className) {
        return 'svg-icon ' + this.className
      } else {
        return 'svg-icon'
      }
    },
    styleExternalIcon () {
      return {
        mask: `url(${this.iconClass}) no-repeat 50% 50%`,
        '-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`
      }
    }
  }
}
</script>
<style scoped>
.svg-icon {
  width: 1.5em;
  height: 1.5em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
.svg-external-icon {
  background-color: currentColor;
  mask-size: cover!important;
  display: inline-block;
}
</style>

2.2、创建icons文件,存放svg图标和将所有的svg图标进行引用并注册成全局组件

在这里插入图片描述

// 导入 Vue 框架
import {
    createApp } from 'vue'
import App from '../App.vue'
// 导入 SvgIcon 组件
import SvgIcon from '@/components/svgIcon/index.vue'

// 将 SvgIcon 组件注册为全局组件
const app = createApp(App)
app.component('svg-icon', SvgIcon)

// 定义一个函数,用于引入所有 svg 文件
const requireAll = requireContext => requireContext.keys().map(requireContext)
// 定义一个上下文,只包含 './svg' 目录下的以 '.svg' 结尾的文件
const req = require.context('./svg', false, /\.svg$/)
// 引入 svg 文件
requireAll(req)

app.mount('#app')

2.3、在man.js 中注册

在这里插入图片描述

import svgIcon from '@/components/svgIcon/index.vue'
import './icons/index.js'

app.component('svg-icon', svgIcon)

2.4、

相关推荐

  1. 前端项目学习记录1:svg图标封装与使用

    2024-06-09 05:08:05       31 阅读
  2. vue3 + vite 中使用 svg-icon 图标

    2024-06-09 05:08:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-09 05:08:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-09 05:08:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-09 05:08:05       82 阅读
  4. Python语言-面向对象

    2024-06-09 05:08:05       91 阅读

热门阅读

  1. v-model的工作原理是什么

    2024-06-09 05:08:05       28 阅读
  2. JFinal学习

    2024-06-09 05:08:05       32 阅读
  3. ts和js有什么不同

    2024-06-09 05:08:05       28 阅读
  4. C#-if判断语句

    2024-06-09 05:08:05       27 阅读