vue项目中怎样引入图标,应用什么方法
Admin 2022-07-16 群英技术资讯 1647 次浏览
这篇文章将为大家详细讲解有关“vue项目中怎样引入图标,应用什么方法”的知识,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在项目开发中,使用图标的方式有很多种,可以在iconfont上面找到合适的图标,通过http或者直接下载使用,这里我分享一种通过实现自定义组件的方式引入图标。
这里通过@vue/cli 4.5.13新建项目,并且需要安装依赖svg-sprite-loader,用来处理对应的svg图标,方便我们使用。
安装: npm install --save-dev svg-sprite-loader
在安装svg-sprite-loader后,新建vue.config.js来配置依赖:
// vue.config.js
const { resolve } = require('path')
module.exports = {
chainWebpack(config) {
config
.module
.rule('svg')
.exclude
.add(resolve('src/icons'))
.end()
config
.module
.rule('icons')
.test(/\.svg$/)
.include
.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
}
}
这里通过chainWebpack来做了两项配置:
在components目录下新建一个SvgIcon.vue文件:
<template>
<i class="icon">
<!-- aria-hidden, 帮助残障人士阅读(设备读取内容时会跳过这个标签以免混淆) -->
<svg aria-hidden="true" :width="size" :height="size" :fill="fillColor">
<use :xlink:href="iconName" rel="external nofollow" ></use>
</svg>
</i>
</template>
<script lang="ts">
import { PropType, toRefs } from 'vue'
export default {
props: {
size: {
type: Number as PropType<number>,
default: 14
},
fillColor: {
type: String as PropType<string>,
default: '#000'
},
iconName: {
type: String as PropType<string>,
required: true
}
},
setup(props: any) {
const { size, fillColor, iconName: _iconName } = toRefs(props)
const iconName = `#${_iconName.value}`
return {
size,
fillColor,
iconName
}
}
}
</script>
然后,新建一个icons目录,并且新建一个index文件,用来挂在组件和引入svg图标:
// index.ts
import SvgIcon from '@/components/SvgIcon.vue'
import { App } from 'vue'
export default (app: App) => {
app.component('svg-icon', SvgIcon)
}
const ctx = require.context('./svg', false, /\.svg$/)
const requestAll = (ctx: __WebpackModuleApi.RequireContext) => ctx.keys().forEach(ctx)
requestAll(ctx)
// main.ts
import { createApp } from 'vue'
import App from './App.vue'
import installSvgIcon from '@/icons/index'
const app = createApp(App)
installSvgIcon(app)
app.mount('#app')
这个文件做了两件事:
首先,我们要在icons/svg目录下存放svg图标文件(在iconfont上找自己需要的);
然后,就可以在其他地方使用啦:
<template> <img alt="Vue logo" src="./assets/logo.png"> <svg-icon icon-name="icon-dashboard"></svg-icon> <HelloWorld msg="Welcome to Your Vue.js + TypeScript App"/> </template>
直接通过组件svg-icon的方式引入,然后传入icon-name即可,icon-name的值由icon拼接svg文件名组成。
这种自定义方式引入svg图标的方式,还是挺方便的,想要加上一个图标的时候,几步即可:
但是,修改样式时不能通过css来修改,这点就不太方便了。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录前言一、forEach(),用于遍历数组,无返回值二、map(),用于遍历数组,返回处理之后的新数组三、every(),用于判断数组中的每一项元素是否都满足条件,返回一个布尔值四、some(),用于判断数组中的是否存在满足条件的元素,返回一个布尔值五、filter(),用于筛选数组中满足条件的元素,返回一个筛选后的
用javascript编程求水仙花数的方法:1、使用for循环查找遍历所有三位数;2、判断遍历的数字是否是各个位数的数字的3次幂数之和是否等于数字本身;3、分别选取个十百位上的数;4、用if语句判断i是否是水仙花数即可。
回调函数是每个前端程序员都应该知道的概念之一。回调可用于数组、计时器函数、promise、事件处理中。本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步。
这篇文章主要为大家详细介绍了jquery实现手风琴展开效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要给大家介绍了关于Angular管道PIPE的相关资料,管道的作用就是传输,并且不同的管道具有不同的作用,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008