Если вы хотите использовать иконки svg в v-icon/prepend-icon
, вам нужно получить к ним доступ через объект $vuetify.icons
. Любой другой текст в v-icon/prepend-icon
будет интерпретироваться как класс webfont / css.
Но для использования $vuetify.icons
объекта необходимо зарегистрировать пользовательские значки. Пример:
import Vue from "vue";
import Vuetify from "vuetify";
import { library } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import { faVuejs } from "@fortawesome/free-brands-svg-icons";
Vue.component("font-awesome-icon", FontAwesomeIcon); // Register component globally
library.add(faVuejs); // Include needed icons.
Vue.use(Vuetify, {
icons: {
vue: {
component: FontAwesomeIcon,
props: {
icon: ["fab", "vuejs"]
}
}
}
});
А теперь вы можете использовать значок vue-brand:
<v-icon>$vuetify.icons.vue</v-icon>
<v-text-field prepend-icon="$vuetify.icons.vue"/>
Также, вы можете использовать без регистрации через font-awesome-icon
:
<font-awesome-icon :icon="['fab', 'vuejs']" />
<v-text-field>
<font-awesome-icon :icon="['fab', 'vuejs']" slot="prepend"/>
</v-text-field>
Из коробки vuetify имеет предустановленные значки config , которые могут быть связаны с SVG:
...
import { fas } from "@fortawesome/free-solid-svg-icons";
...
library.add(fas);
...
Vue.use(Vuetify, {
iconfont: "faSvg"
});
Но для его использования вам следует снова вызвать $ vuetify.icons (vuetify, просто обернуть предустановку как компонент):
<v-icon>$vuetify.icons.warning</v-icon>
Полный пример codesandbox