Vue—— Vue3 SVG 图标系统设计与实现

背景问题:
需要统一管理项目中的图标资源。

方案思考:
使用 SVG 图标系统,便于管理和使用。

具体实现:
首先安装必要的依赖:

npminstallvite-plugin-svg-icons

配置 Vite 插件:

// vite.config.jsimport{defineConfig}from'vite'import{createSvgIconsPlugin}from'vite-plugin-svg-icons'importpathfrom'path'exportdefaultdefineConfig({plugins:[createSvgIconsPlugin({// 指定需要缓存的图标文件夹iconDirs:[path.resolve(process.cwd(),'src/assets/icons')],// 指定symbolId格式symbolId:'icon-[dir]-[name]',})],})

创建 SVG 图标组件:

<!-- components/SvgIcon.vue --> <template> <svg :class="svgClass" aria-hidden="true" v-on="$attrs"> <use :href="iconName" :fill="color" /> </svg> </template> <script setup> import { computed } from 'vue' const props = defineProps({ name: { type: String, required: true }, color: { type: String, default: '#333' }, className: { type: String, default: '' } }) const iconName = computed(() => `#icon-${props.name}`) const svgClass = computed(() => { if (props.className) { return `svg-icon ${props.className}` } return 'svg-icon' }) </script> <style scoped> .svg-icon { width: 1em; height: 1em; position: relative; fill: currentColor; vertical-align: -2px; } </style>

在 main.js 中注册插件:

// main.jsimport{createApp}from'vue'import{register}from'vite-plugin-svg-icons/client'constapp=createApp(App)// 注册 SVG 图标register(app)

使用示例:

<template> <div class="icon-demo"> <SvgIcon name="home" /> <SvgIcon name="user" /> <SvgIcon name="setting" /> <SvgIcon name="search" color="#409EFF" /> </div> </template> <script setup> import SvgIcon from '@/components/SvgIcon.vue' </script>

完整的图标文件结构:

src/ assets/ icons/ home.svg user.svg setting.svg search.svg

其中 SVG 文件示例:

<!-- src/assets/icons/home.svg --><svgxmlns="http://www.w3.org/2000/svg"viewBox="0 0 1024 1024"><pathd="M1024 512c0 282.77-229.23 512-512 512S0 794.77 0 512 229.23 0 512 0s512 229.23 512 512z"fill="#2c2c2c"/></svg>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1203646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

告别原神重复操作烦恼:BetterGI智能助手效率提升全攻略

告别原神重复操作烦恼&#xff1a;BetterGI智能助手效率提升全攻略 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools Fo…

Vue—— Vue 3动态组件与条件渲染优化

技术难点 在业务系统中&#xff0c;如商品管理、通知公告等模块&#xff0c;经常需要根据不同的条件渲染不同的组件或界面。Vue 3虽然提供了<component>和v-if/v-show等机制来实现动态渲染&#xff0c;但在复杂的业务场景下&#xff0c;如何优化组件渲染性能和管理组件状…

Unity游戏翻译工具:突破语言壁垒的游戏本地化解决方案

Unity游戏翻译工具&#xff1a;突破语言壁垒的游戏本地化解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏市场中&#xff0c;语言差异已成为限制游戏用户增长的关键因素。根据2025年…

uni-app——uni-app 小程序表单页面键盘弹起布局错乱问题

问题现象 表单页面点击输入框,键盘弹起后: 平台 表现 安卓 输入框位置错位,光标飘到其他位置 iOS 键盘遮挡输入框,看不到输入内容 问题原因 当页面同时存在以下三个因素时,容易出现布局错乱: scroll-view + float布局 + fixed定位 = 💥 冲突scroll-view:内部滚动与…

LRPC无提示模式真香!YOLOE自动发现所有物体

LRPC无提示模式真香&#xff01;YOLOE自动发现所有物体 在智能安防监控中心的实时画面上&#xff0c;一台部署了YOLOE镜像的边缘服务器正持续分析着商场出入口的视频流——它没有被预设任何类别标签&#xff0c;既未输入“人、包、手机”等文字提示&#xff0c;也未提供参考图…

视频下载工具深度测评:Downkyi与同类工具全方位对比及应用指南

视频下载工具深度测评&#xff1a;Downkyi与同类工具全方位对比及应用指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印…

MinerU镜像预装了什么?核心依赖与模型路径全解析

MinerU镜像预装了什么&#xff1f;核心依赖与模型路径全解析 1. 镜像简介&#xff1a;开箱即用的PDF智能提取方案 MinerU 2.5-1.2B 深度学习 PDF 提取镜像&#xff0c;专为解决复杂文档结构识别难题而设计。无论是学术论文中的多栏排版、技术报告里的公式图表&#xff0c;还是…

2024文档处理入门必看:MinerU开源模型+GPU加速实战指南

2024文档处理入门必看&#xff1a;MinerU开源模型GPU加速实战指南 1. 为什么你需要一个智能PDF提取工具&#xff1f; 你有没有遇到过这种情况&#xff1a;手头有一堆学术论文、技术报告或产品手册&#xff0c;全是PDF格式&#xff0c;想把内容复制出来编辑&#xff0c;结果排…

YOLO11实际项目应用:仓储货物识别系统搭建全过程

YOLO11实际项目应用&#xff1a;仓储货物识别系统搭建全过程 在智能仓储和物流管理日益智能化的今天&#xff0c;自动化货物识别成为提升效率、降低人工成本的关键环节。传统的人工盘点或条码扫描方式已难以满足高密度、高频次的作业需求。而基于深度学习的目标检测技术&#…

Glyph低成本部署方案:中小企业也能用的大模型

Glyph低成本部署方案&#xff1a;中小企业也能用的大模型 1. 什么是Glyph&#xff1a;视觉推理的新思路 你有没有遇到过这样的问题&#xff1a;想让大模型处理一份50页的PDF合同&#xff0c;或者分析一整本产品说明书&#xff0c;结果发现模型直接报错“上下文超限”&#xf…

为什么GPEN推理总失败?CUDA 12.4环境适配教程是关键

为什么GPEN推理总失败&#xff1f;CUDA 12.4环境适配教程是关键 你是不是也遇到过这种情况&#xff1a;兴冲冲地部署了GPEN人像修复模型&#xff0c;结果一运行就报错——CUDA不兼容、依赖冲突、环境缺失……明明代码没动&#xff0c;别人能跑通&#xff0c;自己却卡在第一步&…

Qwen2.5-0.5B监控告警:Prometheus集成部署教程

Qwen2.5-0.5B监控告警&#xff1a;Prometheus集成部署教程 1. 为什么需要监控这个轻量级AI服务&#xff1f; 你刚在边缘设备上跑起了 Qwen2.5-0.5B-Instruct——一个能在纯CPU上流畅流式输出的0.5B参数对话模型。它响应快、启动快、资源占用低&#xff0c;连树莓派4B都能扛住…

3分钟上手!这款开源抽奖工具让公平抽奖系统秒变活动策划神器

3分钟上手&#xff01;这款开源抽奖工具让公平抽奖系统秒变活动策划神器 【免费下载链接】lucky-draw 年会抽奖程序 项目地址: https://gitcode.com/gh_mirrors/lu/lucky-draw 还在为活动抽奖环节的各种糟心事头疼&#xff1f;手工抽奖被质疑暗箱操作&#xff0c;复杂的…

JetBrains IDE试用期重置全攻略:让开发工具持续为你服务

JetBrains IDE试用期重置全攻略&#xff1a;让开发工具持续为你服务 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter &#x1f914; 为什么你的IDE突然不能用了&#xff1f; 当你正在编写代码的关键时刻&#xff…

NewBie-image-Exp0.1保姆级教程:从容器启动到首图生成详细步骤

NewBie-image-Exp0.1保姆级教程&#xff1a;从容器启动到首图生成详细步骤 1. 为什么你需要这个镜像——不是又一个“跑通就行”的Demo 你可能已经试过好几个动漫生成模型&#xff0c;下载权重、装依赖、改配置、调路径……折腾两小时&#xff0c;最后只跑出一张模糊的图&…

RePKG:Wallpaper Engine资源处理全攻略 解锁创意素材新可能

RePKG&#xff1a;Wallpaper Engine资源处理全攻略 解锁创意素材新可能 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 功能探索&#xff1a;发现RePKG的强大能力&#x1f50d; 内…

Llama3-8B值得商用吗?月活7亿内合规使用部署指南

Llama3-8B值得商用吗&#xff1f;月活7亿内合规使用部署指南 1. 核心定位&#xff1a;一张3060就能跑的商用级对话模型 你是不是也遇到过这些情况&#xff1a; 想给客户做个智能问答助手&#xff0c;但GPT API调用成本越来越高&#xff1b;自研模型训练太贵&#xff0c;开源…

法律助手起步:Qwen2.5-7B行业知识注入实践

法律助手起步&#xff1a;Qwen2.5-7B行业知识注入实践 在法律、金融、医疗等专业领域&#xff0c;通用大模型虽然具备广泛的知识基础&#xff0c;但在特定行业的术语理解、合规性判断和专业表达上往往力不从心。如何让一个开源大模型快速“转型”为某个垂直领域的专家&#xf…

避坑指南:Live Avatar部署常见问题与解决方案

避坑指南&#xff1a;Live Avatar部署常见问题与解决方案 1. 引言&#xff1a;为什么你的显卡跑不动Live Avatar&#xff1f; 你是不是也遇到了这样的情况&#xff1a;满怀期待地准备运行阿里联合高校开源的 Live Avatar 数字人模型&#xff0c;结果刚启动就报错 CUDA out of…

JetBrains IDE试用期重置全攻略:零基础上手的终极解决方案

JetBrains IDE试用期重置全攻略&#xff1a;零基础上手的终极解决方案 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter JetBrains系列IDE是开发者的重要工具&#xff0c;但试用期限制常带来困扰。ide-eval-resette…