svg图标优点

文件体积小,能够被大量的压缩

图片可无限放大而不失真(矢量图的基本特征)

在视网膜显示屏上效果极佳

能够实现互动和滤镜效果

svg图标使用

1.安装相应的npm包:

yarn add svg-sprite-loader svgo --dev 

2.src文件夹下新建一个icons文件夹。里面存放svg格式的图标。

index.js实现组件全部注册。

1 import Vue from 'vue';
2 import SvgIcon from '@/components/SvgIcon.vue'; // svg组件
3
4 // register globally
5 Vue.component('svg-icon', SvgIcon);
6
7 const requireAll = requireContext => requireContext.keys().map(requireContext);
8 const req = require.context('./svg', false, /\.svg$/);
9 requireAll(req);

SvgIcon.vue组件:

 1 <template>
2 <svg :class="svgClass" aria-hidden="true">
3 <use :xlink:href="iconName"></use>
4 </svg>
5 </template>
6
7 <script>
8 export default {
9 name: 'svg-icon',
10 props: {
11 iconClass: {
12 type: String,
13 required: true
14 },
15 className: {
16 type: String
17 }
18 },
19 computed: {
20 iconName() {
21 return `#icon-${this.iconClass}`;
22 },
23 svgClass() {
24 if (this.className) {
25 return `svg-icon ${this.className}`;
26 }
27 return 'svg-icon';
28 }
29 }
30 };
31 </script>
32
33 <style scoped>
34 .svg-icon {
35 width: 20px;
36 height: 20px;
37 vertical-align: -0.15em;
38 fill: currentColor;
39 overflow: hidden;
40 }
41 </style>

3.在vue.config.js里set svg-sprite-loader

4.别忘了在main.js中引入:

import Vue from 'vue';
import './icons'; import router from './router';
import store from './store'; import './assets/styles/index.scss'; Vue.config.productionTip = false; new Vue({
router,
store,
template: '<router-view></router-view>',
}).$mount('#app');

5.然后,就可以使用了

<el-form-item prop="username">
<svg-icon icon-class="user" class="icon-svg" />
<el-input placeholder="请输入邮箱" type="text" v-model="loginForm.username" />
</el-form-item>

svg组件封装的更多相关文章

  1. Vuejs 页面的区域化与组件封装

    组件的好处 当我用vue写页面的时候,大量的数据页面渲染,引入组件简化主页面的代码量,当代码区域块代码差不多相同时,组件封装会更加简化代码.组件是Vue.js最强大的功能之一. 组件可以扩展HTML元 ...

  2. ReactNative之从HelloWorld中看环境搭建、组件封装、Props及State

    开篇呢,先给大家问个好,今天是中秋节,祝大家中秋节快乐!!虽然是中秋节,但是木有回家还是总结一下知识点写写博客吧,想着昨天总结一下的,但是昨天和几个同学小聚了一下,酒逢知己总是千杯少呢,喝的微醺不适合 ...

  3. Vue + Element UI 实现权限管理系统 (功能组件封装)

    组件封装 为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度. 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航.头部和主内容三个组 ...

  4. Vue + Element UI 实现权限管理系统 前端篇(七):功能组件封装

    组件封装 为了避免组件代码的臃肿,这里对主要的功能部件进行封装,保证代码的模块化和简洁度. 组件结构 组件封装重构后,试图组件结构如下图所示 代码一览 Home组件被简化,包含导航.头部和主内容三个组 ...

  5. picker(级联)组件及组件封装经验

    组件封装的几个经验 a.参数:最佳方式,仅一个object参数,所需要的实际参数,作为对象属性传入. 如此,便于数据的处理和扩展.例如,后期扩展需要增加参数,或者调整参数时,如果使用的对象传入,老的调 ...

  6. Linux组件封装(五)一个生产者消费者问题示例

    生产者消费者问题是计算机中一类重要的模型,主要描述的是:生产者往缓冲区中放入产品.消费者取走产品.生产者和消费者指的可以是线程也可以是进程. 生产者消费者问题的难点在于: 为了缓冲区数据的安全性,一次 ...

  7. [开源] 基于Layui组件封装的后台模版,HG-Layui-UI通用后台管理框架V1.0版

    HG框架简介 HG-Layui-UI框架,是基于layui最新版UI搭建的一套通用后台管理框架,借鉴了市面上各大主流框架风格,采用iframe标签页实现,保留了传统开发模式的简单实用性. 为快速开发减 ...

  8. Vue.js 自定义组件封装实录——基于现有控件的二次封装(以计时器为例)

    在本人着手开发一个考试系统的过程中,出现了如下一个需求:制作一个倒计时的控件显示在试卷页面上.本文所记录的就是这样的一个过程. 前期工作 对于这个需求,自然我想到的是有没有现成的组件可以直接使用(本着 ...

  9. jQuery组件封装之return this.each(function () {});

    记录一下自己的调试历程 组件封装经常看到这么一段代码 $.fn.plugin = function (options) { return this.each(function (i,t) { new ...

  10. elementUI分页组件封装

    在实际开发需求,产品需要的分页组件比较简单,只可以一页页地翻,就是为了防止用于直接翻看最后的数据(因为有一些历史数据数据量比较大,查看的意义不大,检索效率比较低也比较忙,因为不希望用户在翻页的时候可以 ...

随机推荐

  1. C/C++ 实现动态资源文件释放

    当我们开发Windows应用程序时,通常会涉及到使用资源(Resource)的情况.资源可以包括图标.位图.字符串等,它们以二进制形式嵌入到可执行文件中.在某些情况下,我们可能需要从可执行文件中提取自 ...

  2. Ubuntu搭建邮件服务器

    转载:原文链接 前言 关于邮件服务器的工作原理我就不再赘述了.Postfix是优秀的MTA,而Dovecot则是优秀的MDA.前者负责发信.收信,提供smtp服务:后者负责邮件保存到邮箱,提供pop3 ...

  3. 2022年发布jar到Maven公共仓库最全攻略

    2022年jar包发布到Maven公共仓库最全攻略 分几个步骤: 1.注册 issues.sonatype.org 账号 2.创建 issues 填写项目地址(github.gitee等) 3.验证域 ...

  4. 揭秘Spring事务失效场景分析与解决方案

    在Spring框架中,事务管理是一个核心功能,然而有时候会遇到事务失效的情况,这可能导致数据一致性问题.本文将深入探讨一些Spring事务失效的常见场景,并提供详细的例子以及解决方案. 1. 跨方法调 ...

  5. [Python急救站]定时关机程序

    收到朋友的请求,让我帮他做一个电脑关机程序,其实非常简单.代码如下: import tkinter as tk # 导入tkinter模块 from tkinter import ttk # 导入tt ...

  6. Swagger系列:Spring Boot 2.x集成Spring Doc(Swagger 3.0)

    目录 一.简介 1.SpringFox工具(不推荐) 2.SpringDoc工具(推荐) 二.集成 1.环境 1. 引入Maven依赖 2.配置SpringDocConfig(配置类方式) 3.配置S ...

  7. windows环境下如何优雅搭建ftp服务?

    目录 0. 前言 1.ftp简介 2.下载Apache FTPServer 3.下载并解压压缩包 4.修改配置文件 4.1 修改users.properties配置文件 4.2 修改ftpd-typi ...

  8. 技术解读丨目标检测之RepPoints系列算法

    摘要:本文对anchor-free的目标检测RepPoints系列算法进行梳理,具体包含RepPoints, RepPoints V2, Dense RepPoints. 背景介绍 近两年来,anch ...

  9. AIGC的阿克琉斯之踵

    摘要:现在,越来越多的企业和个人使用AIGC生成文章.图片.音乐甚至视频等内容,AIGC已经成为一种必备的工具.在游戏和原画师行业,甚至已经出现了第一批因为AI而失业的人. 本文分享自华为云社区< ...

  10. 华为云 UCS (On-Premises):运行在您本地数据中心的CCE集群

    摘要:华为云分布式云原生UCS服务,是面向分布式云场景下的新一代云原生产品,提供UCS (Huawei Cloud).UCS (Partner Cloud).UCS (Multi-Cloud).UCS ...