B端系统菜单栏中使用阿里图标
1.需求说明
由于组件库自带的图标数量和内容有限,采用丰富多样的阿里图标是不错的选择
2.阿里图标使用
2.1官网
iconfont-阿里巴巴矢量图标库
2.2使用
2.2.1.先根据关键词搜索并选择对应的图标
注意:若只是少量的svg图片加载建议下载使用,若是svg图片数量过多并不建议采用。
也可以采用其他的方式使用,注意引入对应的iconfont.js和css文件
注意:vite中可以配置svg图标目录
2.2.2封装组件用来显示svg图标
<template><svg :class="svgClass" aria-hidden="true"><use :xlink:href="iconName"></use></svg>
</template><script lang="ts">import { computed } from 'vue'export default {name: 'BaseSvgIcon',props: {iconClass: { type: String },className: { type: String },},setup(props) {const iconName = computed(() => {return props.iconClass ? `#icon-${props.iconClass}` : '#icon'})const svgClass = computed(() => {return props.className ? 'svg-icon ' + props.className : 'svg-icon'})return { iconName, svgClass }},}
</script><style scoped lang="scss">.svg-icon {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;}
</style>
2.2.3.安装vite-plugin-svg-icons 插件,并在main.js中进行注册并导入
注意:Vite插件vite-plugin-svg-icons可以加载svg小图标。其原理是在Vite编译的时候通过DOM操作将SVG插入DOM结构中,然后通过使用内联SVG进行加载访问,方便了小图标引用模式。
// svg-icons注册导入
import 'virtual:svg-icons-register'
import SvgIcon from '@/components/SvgIcon/index.vue'
2.2.4.使用组件
<!--class-name是为了方便添加样式 icon-class是对应的svg的名字,方便添加样式-->
<SvgIcon :icon-class="svg文件名字" class-name="icon" />