element-ui icon 组件源码分享

news/2024/12/31 3:54:46/

今日简单分享 element-ui 源码中的 icon 组件,主要从以下两个方面来分享:

一、源码中 icon 设计思想是什么呢?主要从页面结构、数据、 icon 样式三个方面来分享。

1.1 源码中 icon 组件的页面结构,可以在 package 目录下找到 icon 组件,如下图所示:

1.2 在这个 api 文档中可以找到 icon 的所有名字,具体目录如下:docs/zh-CN/icon.md

1.3 icon 的数据通过全局搜索 $icon 找到一个定义名字的 json 文件。

1.4 icon 的样式可以在这个目录中找到:/package/theme-chalk/src/icon.scss

1.5 icon 组件的使用

二、针对于源码的学习,应用到实际项目当中应该怎么去写呢?以下是我基于对源码的理解,输出一个简单 demo。

2.1 下面是 icon 组件的核心代码,重难点是怎么引入阿里矢量图字体库(下一篇文章分享哈),为了快速验证整体流程是否存在问题,本文当中懒省事,直接把 element-ui 源码中的字体库拷贝了过来,哈哈。组件结构如下 index.vue:

<template><i :class="`yss-icon-${name}`"></i>
</template><script>
export default {name: 'yssIcon',props: {name: String}
};
</script><style>
@font-face {font-family: 'element-icons';src: url('./fonts/element-icons.woff') format('woff'),url('./fonts/element-icons.ttf') format('truetype');font-weight: normal;font-display: auto;font-style: normal;
}* {font-family: 'element-icons' !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-webkit-text-stroke-width: 0.2px;-moz-osx-font-smoothing: grayscale;
}.yss-icon-edit:before {content: '\e764';
}.yss-icon-delete:before {content: '\e6d7';
}.yss-icon-share:before {content: '\e793';
}
</style>

2.3 组件使用如下 demo.vue:

<template><div><yss-icon name="edit" /><yss-icon name="delete" /><yss-icon name="share" /></div>
</template><script>
import { YssIcon } from '@/yssComponentsUI/yssUI.js';export default {name: 'demo',components: {YssIcon}
};
</script>

2.4 页面效果如下:

总结:源码当中的 icon 组件使用的是字体,因此它拥有了字体一些属性,比如设置字体颜色,设置字体大小,设置字体是否加粗等等。字体的这些特性,使得 icon 组件有了更强的适应能力,兼容性、跨平台、及性能优化等优点,这是传统图片作为图标所不具备的。


http://www.ppmy.cn/news/1340532.html

相关文章

【Node系列】REPL详解

文章目录 一、REPL介绍二、REPL案例三、REPL命令四、node介绍五、相关链接 一、REPL介绍 Node.js REPL&#xff08;Read-Eval-Print Loop&#xff09;是一个交互式环境&#xff0c;允许用户在命令行中直接输入JavaScript代码并立即看到结果。REPL是Node.js的一个重要组成部分&…

2024美赛A题思路/代码:资源可用性和性别比例

美赛直播b站&#xff0c;提前关注&#xff1a;川川菜鸟 美赛辅导预定&#xff1a;美赛服务 去年美赛A题作品&#xff1a;2023美赛A题 题目 背景 尽管一些动物物种不属于通常的雄性或雌性&#xff0c;大多数物种在出生时要么显著地为雄性&#xff0c;要么为雌性。虽然许多物…

Linux信号详解~

目录 前言 一、初识信号 二、信号的概念 三、信号的发送与捕捉 3.1 信号的发送 3.1.1 kill 命令 3.1.2 kill 函数 3.1.3 raise函数 3.1.4 abort函数 3.2 信号的捕捉 3.2.1 signal函数 3.2.2 sigaction函数 3.2.3 图示 四、信号的产生 4.1 硬件异常产生信号 4.2 …

Harbor介绍、整体架构和安装

1.Harbor介绍 Harbor 是由 VMware 开源的一款云原生制品仓库&#xff0c;Harbor 的核心功能是存储和管理 Artifact。Harbor 允许用户用命令行工具对容器镜像及其他 Artifact 进行推送和拉取&#xff0c;并提供了图形管理界面帮助用户查看和管理这些 Artifact。在 Harbor 2.0 版…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树

文章目录 第5章 决策树5.1 决策树模型与学习5.1.1 决策树模型5.1.2 决策树与if-then规则5.1.3 决策树与条件概率分布5.1.4 决策树学习5.2 特征选择5.2.1 特征选择问题5.2.2 信息增益5.2.3 信息增益比5.3.1 ID3算法5.3.2 C4.5的生成算法5.4 决策树的剪枝5.5 CART算法5.5.1 CART生…

【GitHub项目推荐--大语言模型课程】【转载】

Large Language Model Course Large Language Model Course&#xff08;大型语言模型课程&#xff09;是一个开源项目&#xff0c;该课程分为三个部分&#xff1a; LLM 基础&#xff1a;涵盖了数学、Python 和神经网络的基础知识。 LLM 科学家&#xff1a;专注于学习如何使用…

多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测

多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预…

2024 RTE行业(实时互动行业)人才发展学习总结

解决方案 人才画像 开发者人才素质要求&#xff1a; 具备多个领域的技术知识注重团队合作&#xff0c;具备协作能力以用户为导向的用户体验意识具备创新思维和解决问题的能力需快速响应行业变化和持续的学习能力具备项目管理能力 学习和吸收新知识的渠道 RTE人才分类