[react] React项目中使用阿里font-icon的svg形式


项目中查看在线链接

在这里插入图片描述

然后会生成一串.jsCDN链接,比如这样:

在这里插入图片描述
打开项目的index.html文件,添加script标签,把链接加进去。

在这里插入图片描述

复杂项目中并不一定是放到这个html文件中,反正最终是要放到项目中的。

或者用js操作dom创建script标签,作用也是一样的。


添加icon样式

然后创建一个common.css文件,把icon样式加进去,

.ali-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}

类名可以用官方文档的,也可以自己取一个,随意。原则是不要和其他类名冲突。

像这样:
在这里插入图片描述
不要忘了在index.js中引入样式:
在这里插入图片描述
注意,这里的fill属性是svg的颜色填充,颜色值使用的是currentColor

该值表示当前的fill属性颜色继承自父节点的color的值。

比如我给svg父节点定义一个颜色值,那么svg的颜色会跟着发生变化:

在这里插入图片描述


使用icon

icon的固定结构:

<svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-xxx"></use>
</svg>

在React中,xlink:href要写成xlinkHref

class="icon"要写成className="icon"

同样要注意的是,这里的class类名要和上面设置的css类名保持一致。

就像这样:

<svg className="ali-icon" aria-hidden="true">
    <use xlinkHref="#icon-xxx"></use>
</svg>

示例

比如要使用右边这个icon

在这里插入图片描述

鼠标悬浮在icon上,点击复制代码

在这里插入图片描述
复制到的代码其实就是这个icon的名字,把这个名字添加到xlinkHref中就行了。

在哪里用,就把svg结构放在哪里。

<svg className="ali-icon" aria-hidden="true">
    <use xlinkHref="#icon-bianji1"></use>
</svg>

在这里插入图片描述
页面结果:

在这里插入图片描述


优雅一点

做个简单的封装

const SvgIcon = (props) => {

  const { font } = props;

  return <svg className="ali-icon" aria-hidden="true">
    <use xlinkHref={`#${font}`}></use>
  </svg>
}

使用:

const Todos = () => {
  
  return <div className={styles.todos}>
    <SvgIcon font='icon-bianji1' />
  </div>
}

后记

每次往项目里添加新图标,就要更新一次线上链接,然后把index.html中的script标签引入的地址给换成最新的。

所以,写项目时,最好先考虑好要用到哪些图标,一次性放入项目,避免多次生成和更新线上链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值