首页 前端知识 Vue3 ElementPlus项目使用iconfont阿里图标

Vue3 ElementPlus项目使用iconfont阿里图标

2024-06-10 23:06:39 前端知识 前端哥 310 497 我要收藏

  回顾一下上篇文章的内容,Element UI 使用的是阿里巴巴的图标库,通过字体图标的用法(即使用 el-icon-xxx 的类名)来引入图标。。而Element Plus 抛弃了字体图标的用法,而直接使用了 svg 图标。
  那么在Element Plus框架内使用阿里图标又该如何实现?本篇文章就是讲述Vue3+ElementPlus项目使用iconfont阿里图标的方法。

Vue3+ElementPlus项目使用iconfont阿里图标

  • 1、封装通用组件
  • 2、引入iconfont
  • 3、使用
    • (1)在main.js导入
    • (2)在页面中使用
  • 4、有坑填坑

  默认大家已经下载安装配置好elementplus。不知道的盆友们请翻一下之前的文章,都介绍的很清楚。;指路:vuecli3引入Element-plus

  Element Plus中的图标其实也是组件,我们也知道在Vue中可以直接在模板中使用<svg>标签来插入SVG图标代码。这就给我们提供了一个思路,将阿里图标也封装成一个通用组件,然后在vue3项目中导入注册,就像其他组件一样使用。
  那么开始实战吧~~

1、封装通用组件

  在components文件夹下新建一个iconfont文件夹,并在该文件夹下新建一个SvgIcon.vue

// 直接复制即可
<template>
    <svg aria-hidden="true">
        <use :xlink:href="iconName" />
    </svg>
</template>

<script setup>
import { computed } from 'vue'

// 父组件传入参数
const props = defineProps({
    iconName: {
        type: String,
        required: true // 必须传入
    },
})

// 图标在 iconfont 中的名字
const iconName = computed(()=>{
  return `#${props.iconName}`
})
</script>

<style scoped>

</style>

  elementplus的图标组件自身无css属性,所以为了保持统一也不设置。在上篇文章中,推荐图标组件与el-icon搭配使用,所以可以直接在el-icon上设置color和size属性来控制图标的大小和颜色。

2、引入iconfont

  在asserts文件夹中新建一个iconfont文件夹,并在该文件夹下新建一个iconfont.js

在这里插入图片描述

  选择需要的图标添加到我的项目中去,选择Symbol,打开链接,将内容复制到iconfont.js文件中去


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

3、使用

(1)在main.js导入

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import SvgIcon from './components/iconfont/SvgIcon.vue'
import './assets/iconfont/iconfont.js'

const app = createApp(App)
app.use(router)
app.component('SvgIcon', SvgIcon)
app.mount('#app')

(2)在页面中使用

<template>
	<el-icon size="12px" color="#ffbbcc">
		// 传入图标名字
		<SvgIcon iconName="icon-maogou"/>
	</el-icon>
</template>

4、有坑填坑

  使用后大家可能会发现在el-icon上设置color属性并不会改变图标的颜色。为什么呢?因为如果某一个图标的fill不为空,那么作为svg引用时将无法修改填充色
  那么该如何解决呢?有两种解决方法:

  • (1)在iconfont.js文件中找到fill属性,并删除。
  • (2)在官网中,将项目中的图标批量去色,然后更新iconfont.js

  显然方法(2)更好,方法(1)要在一大坨代码中找,想想都要晕了~~

  嘿嘿嘿,是不是很简单,觉得不错就给我点个赞吧~~

转载请注明出处或者链接地址:https://www.qianduange.cn//article/11802.html
标签
评论
发布的文章

第一次实验补充

2024-06-18 09:06:14

html5shiv,从入门到深入

2024-05-09 10:05:07

html5基础入门

2024-06-18 09:06:07

HTML5学习简记

2024-06-18 09:06:20

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!