Deng
Deng
如何在uni-app中大量使用阿里巴巴矢量图图标 | odjBlog
    欢迎来到odjBlog的博客!

如何在uni-app中大量使用阿里巴巴矢量图图标

技术总结及问题解决 odjbin 2年前 (2023-08-23) 75次浏览 0个评论

阿里巴巴矢量图标库地址 https://www.iconfont.cn/

第一步添加图标:

  • 如果没有账号, 可以先去注册阿里矢量图标库账号
  • 登录去图库里面找自己喜欢的图标
  • 加入购物车
  • 点击购物车把选择好的图标全部添加到一个项目里面

第二步下载图标文件到本地:

  • 在添加完项目后就会出现这样一个界面,点击下载到本地

第三步将文件拖入 uniapp 项目

  • 把下载的文件(除 demo_index.html 外) 全部拖到 uniapp 项目根目录的 static/styles/iconfont/ (自定义目录) 里面

第四步在 App.vue 中引用

<style lang="scss">
    @import "@/static/styles/iconfont/iconfont.css";
</style>

( 我这里也在 uni.scss 也引用了, 具体是否需要引入有待优化 )

使用方法 (我这里是 class 引入)

  • 如果想固定每个图标的样式, 可以在 static/styles/iconfont/目录( 自定义目录 )的 iconfont.css 文件中修改 font-size 的值

  • 图标使用格式 , 其中 icon-xxx, 直接在下方这个页面上, 点击 fontclass, 之后点击图标中的 复制代码 即可使用
<text class="iconfont icon-xxx "></text>

uniapp 使用大量阿里巴巴矢量图标完整代码

  • 我这里 uniapp 项目使用的 vue3 版本, uview-plus 框架
  • 因为图标太多, 代码冗余, 所以新建了个 js 文件, 在页面上引用

类似写法见博客, 这里就不多赘述了:
uni-app 读取本地数据文件,并渲染到页面上

<template>
<view class="chooseIcon" :style="{maxHeight:iconHeaght+'px'}">
        <u-grid :border="false" col="6">
            <u-grid-item v-for="(item,index) in iconList" :key="index">
                <text class="iconfont" :class="item" style="color: #908e9d;"></text>
            </u-grid-item>
        </u-grid>
    </view>
</template>

<script setup>
    import {
        ref
        onMounted
    } from "vue";
    import {
        iconIcon
    } from "@/static/data/icon.js"
    const iconHeaght = ref(420)
    const iconList = ref(iconIcon)
    onMounted(() => {
        //这里是 uni-app 提供的异步获取设备系统信息的 API
        uni.getSystemInfo({
            success: res => {
                //获取设备高度, 适应图标数量或多或少的背景高度
                iconHeaght.value = res.windowHeight - 410
            }
        });
    })
</script>

<style lang="scss" scoped>
    .chooseIcon {
        background-color: #fff;
        overflow-y: auto;
    }
</style>

因项目需要, 暂未使用彩色图标, uniapp 使用大量彩色图标文章待更新...

喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
已稳定运行:3年255天3小时56分