v-slotとは
やりたいこと
v-slot
の値を動的に扱いたい。
例えばVuetifyのDataTableで v-slot
を使うサンプルで、
Data table component — Vuetify
<template v-slot:item.calories="{ item }">
<v-chip
:color="getColor(item.calories)"
dark
>
{{ item.calories }}
</v-chip>
</template>
item.calories
を動的にしたい場合です。
やり方
vueの2.6.0から対応されていて、 []
で値を囲めば良いです。
先の例だと、
<template v-slot:[`item.${someVar}`]="{ item }">
<v-chip
:color="getColor(item.calories)"
dark
>
{{ item.calories }}
</v-chip>
</template>
という事です。
他にも v-for
と組み合わせて
<template v-for="one in array" v-slot:[`item.${one}`]="{ value }">
{{ value.hoge }}
</template>
というのもできます。tableの列が増減するようなパターンで使えます。