1. vip3-icon

图标解决方案,支持:

  • 扩展了VIP3平台的模块加载器,支持加载SVG图标制作为精灵图(SVG Sprite)。
  • 内置两个Vue组件
    • RemixIcon:支持显示图片、Base64编码、SVG、SVG Sprite和Icon Font多种图标
    • AuthImage:支持显示需要授权的才能访问的图片

1.1. 快速开始

安装依赖

npm install @zhoujianhui/vip3-icon

注册组件

import createIcon from "@zhoujianhui/vip3-icon";
import App from "./App";

(async () => {
    // 创建应用
    const app = await createApp(App)

    if (app) {
        // 注册平台图标组件
        const icon = createIcon()
        app.use(icon)
    }
})()

1.2. RemixIcon


<template>
  <remix-icon :icon="assets/icon/xx.jpg|svg|Base64"/>
</template>

icon属性可以是url、相对路径和Base64编码的图片字符串。

注意:相对路径指的是发布后的相对路径,而不是发布前src下的相对路径

1.2.1. 精灵SVG

将 SVG 图标打包成精灵图(sprite)可以减少网络请求次数,从而提升加载速度。 如果将SVG制作成精灵SVG供RemixIcon使用,需要配置 vue.config.js 中对于SVG文件的处理。

 chainWebpack: (config) => {
    // 排除默认SVG规则对于src下SVG文件的处理
    config.module
        .rule("svg")
        .exclude
        .add(path.resolve(__dirname, "src"))
        .end()

    // 自定义规则将SVG文件处理为精灵SVG
    config.module
        .rule("remixIcon")
        .test(/\.svg$/)
        .include
        .add(path.resolve(__dirname, "src/"))
        .use("svg-sprite-loader")
        .loader("svg-sprite-loader")
        .options({symbolId: "ss-[name]"}) // 设置生成图标的 ID 格式
        .end()
}

使用精灵SVG


<template>
  <remix-icon icon="ss-<SVG名称>"/>
</template>

注意:“ss-” 为自定义前缀,你可以通过 symbolId 选项来自定义。

1.2.2. Font字体图标

以awesome font为例


<template>
  <remix-icon icon="fa-solid fa-user"/>
</template>

1.3. AuthImage

如果图片需要授权后才能访问,可以使用 AuthImage 组件。 它会利用VIP3平台内核提供的带认证信息的Axios实例访问配置的需要授权的图片URL,获取并加载图片二进制流。


<template>
  <auth-image :src="<图片URL>"/>
</template>
Copyright ©zhoujianhui all right reserved,powered by Gitbook更新时间: 2024-11-11 14:56:23

results matching ""

    No results matching ""