推荐一个实现设计稿的时候,遇到很多小icon的解决方案

大家有没有遇到过这种情况啊

就是

UI给分享的设计稿

里边有很多这样的小图标

然后这些小图标呢

也没有专门的放到一个iconfont(aliyun)

的图标库里边

我们自己往里边上传呢

还需要审核之类的就比较麻烦

所以呢

一般的话我们就只能把这些小图标啊

导图片放到项目里

但是呢

对于有些图标其实他可能是有交互的

悬停上去是要换个颜色的

所以呢

我们可能需要导出两种颜色的图标

就比较麻烦

那今天啊

我在这个el-admin(一个开源的管理后台脚手架)里面

学到了一个解决方案

觉得特别好给大家分享一下啊

首先我们先来看一下效果

我已经把代码拿到了我这个demo项目里边

比如说我想用这个加号

那我把这个加号右键

拷贝成svg格式

拷贝好之后呢我们回到项目里

看看我这有一个svg目录

然后呢新建一个比如叫plus.svg

然后把刚才复制的粘过来

注意粘过来现在就能用了

但是有点问题我们先来看一下啊

然后呢我在项目里边

这里用这个文件名去掉后缀叫PLUS

好保存一下

大家看就能用了

但是呢他这个颜色没有跟随

我现在页面的颜色

这就是我刚才说的有点问题

所以怎么处理呢

我们在粘贴过来之后啊

需要找到他这个fill

填充的颜色

他自带的颜色都给它去掉

(有两个大家看)

去掉以后呢

这样就可以了

那关于刚才去掉的这两个属性呢

等一下

我给大家分享有更快捷的方法哈

我们先来看

一下怎么封装的这个组件哈

首先呢我们需要导入一个包

svg sprite loader

这个组件的作用是什么呢

它可以把我们项目里的svg文件啊

通通的列在页面上

以这种的形式

然后大家看它有一个id是什么

什么就是你那个文件名

然后再用的时候呢

就可以直接去引用这个ID了

所以呢我们需要在这个

vue.config.js里边啊(没用vue的,直接找webpack)

去配置一下这个组件

他去扫描哪个路径啊

然后包括这个 symbolId 的这个规则

大家看 我这有个myicon

注意啊后面会提到

配置好他之后呢

我们再把这个封装好的组件复制过来

在这 components

然后svg icon

这里边

原封不动复制过去就行

只不过呢

他注意那个刚才说那个 symbolId 的规则

大看这有一个myicon

在这要跟他保持一致就行了

那其实这样正常来说就能用了

只不过用的时候

除了要把这个组件导到页面上

还需要把你用到的icon导到页面上

所以呢他又封装了一个js文件

在这里 icons 里边有一个index

他首先要把这个组件注册到全局

然后呢通过这几行代码

他把所有的svg都倒到页面上备用了

这样的话想用的时候随时就能用了

然后最后把这index啊

在main里边去做一个引入就可以了

这样的话呢

我们在vue文件里就可以直接这样用了

回过头来再来说刚才这个替换到

fill 的这个问题哈

这个怎么处理呢

大家看 我们手工处理也行

如果嫌麻烦的话呢

还可以在这个package里

面导一个这个svgo

然后呢在上面这个写个脚本

是vgo 像这样写

然后呢这个config文件里面怎么写呢

大家看

这里边我们

可以指定让他移除掉哪些属性

这是以正则的形式替换掉的

然后呢我们就可以在项目里边

这样的话他就会替我们自动去处理

而且呢他会把空格换行什么都去掉

做一个压缩

那关于这个demo的项目

还是放到github

这个地方哈

大家有需要的话可以自己来找一下

最后更新于