【Nova UI】八、打造组件库第一个组件-图标组件(上):图标组件开发实战攻略

序言

在组件库的构建中,那些简洁美观、表意清晰的图标组件,宛如灵动的视觉音符,为用户体验增添了独特魅力。你是否好奇,它们究竟是如何在组件库中精彩呈现的呢?此前,我们已深入掌握 SASS 强大的全局变量管理技巧,而在图标组件开发的新征程中,这些技巧将怎样发挥奇妙作用,又会赋予图标组件哪些独特优势呢?带着这些疑问,让我们一同开启组件库首个组件 —— 图标组件的开发之旅,一探究竟。

SVG

介绍

SVG,全称可缩放矢量图形(Scalable Vector Graphics),是一种基于 XML(可扩展标记语言)的二维图形描述方式。与依赖像素存储的传统位图图像,如 JPEG、PNG 不同,SVG 图形由数学公式精准定义。这就像给图形赋予了 “伸缩自如” 的超能力,无论放大或缩小多少倍,图形始终能保持清晰锐利,线条平滑流畅,细节毫发无损,完美诠释了矢量图形的独特魅力。

语法

下面这段简单代码,直观展现了 SVG 的基础语法:

<svg width="100" height="100">
    <circle cx="50" cy="50" r="40" fill="red"/>
svg>

其中,标签划定了图形的展示区域,widthheight属性分别设定其宽和高。标签则用于绘制圆形,cxcy确定圆心坐标,r指定半径,fill填充颜色。寥寥数行,便能勾勒出一个图形,尽显 SVG 语法的简洁高效✨。

优势
  • 强大的可缩放性:这是 SVG 的核心优势之一,在响应式设计大行其道的当下,作用尤为突出。无论是手机的小屏幕,还是电脑的大显示器️,甚至是超高清大屏,SVG 图形都能无缝适配,清晰呈现,为用户带来始终如一的视觉享受。
  • 轻巧的文件体积:对于简单图形,SVG 文件通常比同等复杂程度的位图文件体积小。因为 SVG 是用代码描述图形,如同一份图形绘制指南,而非存储每个像素的信息。这一特性使其在网络传输和存储方面优势显著,能有效加快加载速度,节省带宽资源,提升用户体验。
  • 出色的交互性:SVG 图形可通过 JavaScript 和 CSS 与用户进行丰富交互。借助 JavaScript,能为其添加动画、旋转等动态效果,让图形在页面上 “动” 起来;利用 CSS 可轻松改变其外观样式,如颜色、线条粗细、透明度等。当用户鼠标点击️、悬停在图形上时,还能触发特定动作或显示提示信息,极大增强了用户与界面的互动性,提升了用户体验。

SVG图标组件包

packages/svgs/components目录下,我们新增plus.vue文件来构建plus SVG 图标组件。