SVG图标使用

该博客介绍了如何在React应用中使用SVG图标,并展示了一个名为`IconiconBtnCheckboxNor`的SVG图标组件的实现。组件通过`getIconColor`函数处理颜色,接受颜色、大小和样式等属性。在实际应用中,该组件被引入并用于`IconFont`组件,允许通过`name`属性选择不同的SVG图标。示例展示了如何在页面上以特定尺寸和颜色显示图标。
摘要由CSDN通过智能技术生成
SVG图标
// helper.js 文件

/**
 * @param {string | string[] | undefined} color
 * @param {number} index
 * @param {string} defaultColor
 * @return {string}
 */
export const getIconColor = (color, index, defaultColor) => {
  return color
    ? (
      typeof color === 'string'
        ? color
        : color[index] || defaultColor
    )
    : defaultColor;
};

path标签的d属性可以从iconfont获取
在这里插入图片描述


import React from 'react';
import { getIconColor } from './helper';

const DEFAULT_STYLE = {
  display: 'block',
};

const IconiconBtnCheckboxNor = ({ size, color, style: _style, ...rest }) => {
  const style = _style ? { ...DEFAULT_STYLE, ..._style } : DEFAULT_STYLE;

  return (
    <svg viewBox="0 0 1024 1024" width={size + 'rem'} height={size + 'rem'} style={style} {...rest}>
      <path d="M807.381333 64A152.618667 152.618667 0 0 1 960 216.618667v590.762666A152.618667 152.618667 0 0 1 807.381333 960H216.618667A152.618667 152.618667 0 0 1 64 807.381333V216.618667A152.618667 152.618667 0 0 1 216.618667 64h590.762666z m0 42.666667H216.618667A109.952 109.952 0 0 0 106.666667 216.618667v590.762666A109.952 109.952 0 0 0 216.618667 917.333333h590.762666A109.952 109.952 0 0 0 917.333333 807.381333V216.618667A109.952 109.952 0 0 0 807.381333 106.666667z" fill={getIconColor(color, 0, '#333333')} />
    </svg>
  );
};

IconiconBtnCheckboxNor.defaultProps = {
  size: 18,
};

export default IconiconBtnCheckboxNor;

// 引入图标文件
import React from 'react';
import IconiconBtnCheckboxNor from './IconiconBtnCheckboxNor';

const IconFont = ({ name, ...rest }) => {
  switch (name) {
    case 'iconicon_btn_checkbox_nor':
      return <IconiconBtnCheckboxNor {...rest} />;
  })
export default IconFont;
// 页面上使用

import Iconfont from '../../Iconfont';

<Iconfont
    name={'iconicon_btn_checkbox_nor'}
    size='2'
    color='#BBBDBF'
   />
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值