我目前正在用默认的"material 设计图标"构建一个vuetifyjs应用程序.在生产版本中,我只使用这种字体的两个图标(vuetify组件芯片使用).

按照建议,我将完整的iconfont包括在内

<link href="https://cdn.jsdelivr.net/npm/@mdi/font@3.x/css/materialdesignicons.min.css" rel="stylesheet">

但是,这一产品版本迫使用户仅下载2个图标的近0.5MB数据.

  • 在CDN请求中仅包含所需的图标
  • 使用树摇动只在主CSS文件中包含需要的图标?(我正在使用parcel.js builder)

推荐答案

我们建议尽可能使用@mdi/js.这提供了一个ES模块,可以导出图标集中每个图标的SVG路径,并支持树形显示.只需将图标字符串传递给SVG路径元素,或者在本例中,如果在Vuetify config:iconfont: 'mdiSvg'中指定图标字体,则可以将其直接传递给v-icon.

Installation

npm install @mdi/js

Usage

<template>
  <v-icon>{{ mdiCheck }}</v-icon>
</template>

<script>
  import { mdiCheck } from '@mdi/js'

  export default {
    data: () => ({
      mdiCheck,
    }),
  }
</script>

您可以在此处阅读有关与Vuetify集成的更多信息:https://vuetifyjs.com/en/customization/icons#install-material-design-icons-js-svg

Vue.js相关问答推荐

Nuxt.js i18n不提供默认区域设置中的页面而不重定向

vue3中的转换可以在滑入但不能滑出时工作

VITE:无法为VUE单文件组件加载URL

Vue.js 3 没有组件的实例?

vue3 + pinia:如何从?store 中获取一个值

Vue3如何将自定义事件绑定到路由视图中的特定组件?

如何在 vue 路由中导航到 Bootstrap-vue 选项卡中的特定选项卡?

如何在vue中动态加载组件

如何对对象数组进行 v-model

vuejs中watch方法和计算方法有什么区别

导入没有 .vue 扩展名的 *.vue 文件时出现以下错误?

Vue&TypeScript:在项目目录外的 TypeScript 组件中实现导入时如何避免错误 TS2345?

全局禁用 vuetify 组件的涟漪效应

如何在 VueJS 中访问 [__ob__: Observer] 的元素?

Select 下拉列表中的复选框后如何清除 v-autocomplete(多个)搜索输入?

如何将项目推送到 Vuejs 中数据对象的数组中? Vue 似乎没有关注 .push() 方法

如何将事件绑定到 Vuetify 中的树视图 node ?

vue-router如何持久化导航栏?

Vuetify - 如何进行分页?

仅在提交时验证 vuetify 文本字段