Все можно контролировать в Vuetify. С одними делами проще, с другими сложнее:
new Vue({
el: '#app',
vuetify: new Vuetify(),
data: () => ({
items: [{
id: 1,
name: 'Applications :',
children: [{
id: 2,
name: 'Calendar : app'
}, ],
},
{
id: 15,
name: 'Downloads :',
children: [{
id: 16,
name: 'October : pdf'
}, ],
}
],
}),
})
.large {
font-size: 20px;
font-weight: 700;
}
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
<div id="app">
<v-app id="inspire">
<v-treeview :items="items">
<template v-slot:label="{ item }">
<span
:class="{ large: !!(item.id === 15) }"
>
{{ item.name }}
</span>
</template>
</v-treeview>
</v-app>
</div>
Посмотрите на описание API на страницах компонентов Vuetify и найдите slots
- если компонент имеет слот вы ищете, то с ним довольно легко можно работать. Если нет, то вам, возможно, придется настроить классы или даже компоненты.
v-treeview
документация: https://vuetifyjs.com/en/components/treeview/
VTreeview имеет вызов slot
label
. Вы можете "вызвать" этот слот:
<v-treeview :items="items">
<template v-slot:label="{ item, leaf, selected, indeterminate, active, open }">
<!-- your code comes here --->
</template>
</v-treeview>
Вы можете передать item
, leaf
, selected
, indetermintae
, active
или open
реквизиты, которые вы можете использование в рамках <template></template>
. В моем фрагменте нам нужен был только item
, поэтому я передал только его.
Мой фрагмент работает только в том случае, если у вас есть элемент с id: 15
, но вы можете указать любые logi c там: методы вызова, вычисляемые свойства и т.д. *