我有一个带有Vue 2.6和Vutify 2的Laravel 9应用程序.在这个应用程序中,我以以下方式使用v-icon,并且它可以工作.

 <v-icon color="black" large @click="closeDialog()">
        mdi-arrow-left
 </v-icon>

此外,如果我想要在v文本字段或v文本区域中追加/预先添加图标,则可以使用它

 <v-textarea
     v-model.trim="commentText"  
     label="Write a comment.."
     append-icon="mdi-send"
    >
 </v-textarea>  

我正在将我的应用程序迁移到Laravel 10、Vue 3和Vutify 3.在此应用程序中,v-icon不显示任何内容.下面没有显示任何内容,我也没有在控制台中看到任何错误.

<v-icon>mdi-cog</v-icon>
<v-icon> mdi-calendar</v-icon>
<v-icon> mdi-access-point </v-icon>
<v-icon> mdi-star </v-icon>

作为一种解决办法(在一些Google搜索之后),我导入图标(通过@jamescoyle/vue-icon),然后将其与svg-icon一起使用,如下所示:

<v-icon
                    size="36"
                    color="black"
                    large
                >
                    <svg-icon
                        type="mdi"
                        size="36"
                        :path="mdiArrowLeft"
                    ></svg-icon>
                </v-icon>

这是我的资源/js/app.js

import './bootstrap';
import { createApp } from 'vue';

import 'vuetify/styles'
import { createVuetify } from 'vuetify'
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'

const vuetify = createVuetify({
  components,
 directives,
})


const app = createApp({});

import ExampleComponent from './components/ExampleComponent.vue';
app.component('example-component', ExampleComponent);

//app.mount('#app');  

// Updated to use vuetify
app.use(vuetify).mount('#app');

我的问题是:如何让v-icon像以前一样在我的Vue-Vutify 3应用程序中运行.

推荐答案

如果你想要material 设计图标(MDI),你只需要添加正确的包.通常,您将使用@mdi/font,并按照documentation for icon fonts中所述进行设置:

import { createVuetify } from 'vuetify'
import { aliases, mdi } from 'vuetify/iconsets/mdi'

import 'vuetify/styles'
import '@mdi/font/css/materialdesignicons.css'

const icons = {
  defaultSet: 'mdi',
  aliases,
  sets: {
    mdi,
  }
}

const vuetify = createVuetify({
  icons,
  ... 
})

但它的工作原理与Vutify 2中的一样:

const { createApp, ref } = Vue;
const { createVuetify } = Vuetify
const vuetify = createVuetify()

createApp({}).use(vuetify).mount('#app')
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/vuetify@3.1.8/dist/vuetify.min.css" />
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css" rel="stylesheet">
<div id="app">
  <v-app>
    <v-icon>mdi-cog</v-icon>
    <v-icon> mdi-calendar</v-icon>
    <v-icon> mdi-access-point </v-icon>
    <v-icon> mdi-star </v-icon>
  </v-app>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@3.1.8/dist/vuetify.min.js"></script>

Laravel相关问答推荐

当未通过验证的字段是值数组时,Laravel$validator->;validator()方法不会引发异常

laravel vue 惯性分页器删除上一个和下一个链接

如何在 Laravel 中将 Select 选项表单插入数据库

找不到 Laravel 5 类日志(log)

如何在 laravel 5.3 中验证没有 auth:api 中间件的用户?

Laravel:使用 Input::old 时 textarea 不会重新填充

如何在 Laravel 中使用内存数据库的完整测试套件之前迁移和 seeder ?

Laravel 5.4 LengthAwarePaginator

Laravel 4,如何测试复选框是否被选中?

SQLSTATE [HY000]:一般错误:1005 无法创建表 - Laravel 4

从 sqlite DB 登录 Laravel,得到PDOException 找不到驱动程序

laravel 4 - 如何限制(采取和跳过)Eloquent的 ORM?

使用 laravel eloquent 关系检索除 NULL 之外的所有记录

如何使用外部图像生成 html div 的 screenshot截图?

Laravel 4 上传图片表单

安装后在 Lumen 中找不到页面

Laravel Mail 发送Electron邮件但返回 false

开发中的 Laravel 和视图缓存 - 无法立即看到更改

同一模型上的 Laravel 父/子关系

如何在 Laravel 5.3 中获取当前的语言环境