浅谈如何封装iconfont的svg图标组件

如何自定义封装iconfont的svg图标组件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为了在uni-app中自定义封装Iconfont的SVG图标组件,您可以按照以下步骤操作:

步骤1:获取Iconfont图标

  1. 访问 iconfont.cn
  2. 在我的项目中生成网络js文件
  3. 新建svg.js,将代码复制到js当中
  4. 在main.js中导入svg.js文件
import  svg  from './common/svg.js';
Vue.use(svg)

步骤2:创建Icon组件

在uni-app项目中创建一个新的Vue单文件组件(SFC),例如命名为 Icon.vue

<!-- Icon.vue -->
<template>
	<view>
		<svg :class="svgClass">
			<use :xlink:href="iconClassName"></use>
		</svg>
	</view>
</template>

<script>
export default {
	props: {
		iconName: {
			type: String,
			required: true
		},
		className: {
			type: String,
			default: ''
		},
		size: {
			type: String,
			default: '16px'
		}
	},
	data() {
		return {};
	},
	created() {},
	computed: {
		iconClassName() {
			return `#${props.iconName}`;
		},
		svgClass() {
			return `svg-icon ${props.className}`;
		}
	},
	methods: {}
};
</script>

<style lang="scss" scoped>
	.svg-icon {
	  /* v-bind 是 Vue3 才支持的功能,可以将 CSS 的值与 js 的值绑定 */
	  width: v-bind('props.size');
	  height: v-bind('props.size');
	  position: relative;
	  fill: currentColor;
	  vertical-align: -2px;
	} 
</style>

步骤3:使用自定义Icon组件

现在您可以在项目的任何地方使用封装好的Icon组件来显示Iconfont的SVG图标。

<!-- 在其他.vue文件中使用Icon组件 -->
<template>
  <view>
    <icon iconName="caomei" /> <!-- 使用名为“caomei”的图标 -->
  </view>
</template>

<script>
import Icon from '@/components/Icon.vue'; // 路径根据实际项目结构调整

export default {
  components: {
    Icon
  }
};
</script>

通过以上步骤,您已经成功地自定义封装了一个基于Iconfont的SVG图标组件。在使用时,只需传入对应的图标名称作为icon属性,组件就会自动查找并插入相应的SVG符号。这种方式允许您在项目中统一、便捷地管理并复用Iconfont的SVG图标。

更多详细内容,请微信搜索“前端爱好者戳我 查看

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端布道人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值