vue3实战项目第一日(学习项目):封装svg全局组件

技术要点

1. SVG 图标容器:

  • 使用 <svg> 标签作为图标容器。
  • 通过 :style 动态绑定宽度和高度。
  • 使用 class="svg-icon" 应用基础样式。

2.use标签的使用

  • <use>标签用于引用 SVG 图标。
  • :xlink:href属性指定图标引用路径。
  • :fill属性控制图标颜色。
  • 具体代码展示图:

3. Props 设计:

  • prefix: 图标前缀,默认 '#icon-'。
  • name: 图标名称(必填)。
  • color: 图标颜色(可选)。
  • width/height: 图标尺寸(默认 16px)。
  • 具体代码展示图:
  • 其中name就是svg图标的文件名
  • defineProps 是 Vue 3 组合式 API 中的一个编译器宏,用于定义组件的 props。它是在 <script setup> 中使用的,不需要显式导入。
  • 进行到这一步,组件的封装就差不多结束了。

组件的导出、声明、注册

在同一个文件夹内创建一个index.ts文件

具体文件夹如下:

index.ts主要内容:

  • 1.引入全局对象
javascript 复制代码
//引入项目中全部的全局组件
import SvgIcon from './SvgIcon/index.vue'
import Pagination from './Pagination/index.vue'
// import Category from './Category/index.vue'
//引入element-plus提供全部图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
  • 2.定义一个全局对象allGloablComponent并且将其暴露出去。
  • 3.不要忘了在main.js中引入自定义插件对象:注册整个项目全局组件。(漏掉这一步骤可能会在浏览器显示不出组件)
  • 4.完成封装一个svg全局组件,具体呈现图如下:
相关推荐
AIGC小尼21 分钟前
毕设实战|SpringBoot+Vue 实现多个系统项目
vue.js·spring boot·课程设计
踩着两条虫3 小时前
我在浏览器里“盖”了一个村:Vue + Three.js 大屏开发踩坑记
前端·vue.js·three.js
高级程序源5 小时前
SSM仓储管理系统31582-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·flask·课程设计
溪语流沙5 小时前
【Web全栈进阶】前端世界观:现代工具链与框架为什么存在
前端·javascript·vue.js
WeiXin_DZbishe6 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
高级程序源7 小时前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
高级程序源7 小时前
springboot社区旧物回收管理系统25381-计算机课程设计、毕业设计
vue.js·spring boot·python·django·课程设计
高级程序源7 小时前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
WeiXin_DZbishe7 小时前
基于Node.js的马拉松赛事管理系统的设计与实现-计算机毕设 附源码【课程设计】90211
java·javascript·vue.js·python·php·课程设计
风早爽太8 小时前
Mac 搭建 Vue 开发环境
前端·vue.js