I am trying to use vuetify 3.alpha with vue 3. These are my files:
Temp.vue (taken from vuetify example)
<template>
<div class="text-center">
<v-dialog
v-model="dialog"
width="500"
>
<template v-slot:activator="{ on, attrs }">
<v-btn
color="red lighten-2"
dark
v-bind="attrs"
v-on="on"
>
Click Me
</v-btn>
</template>
<v-card>
<v-card-title class="text-h5 grey lighten-2">
Privacy Policy
</v-card-title>
<v-card-text>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn
color="primary"
text
@click="dialog = false"
>
I accept
</v-btn>
</v-card-actions>
</v-card>
</v-dialog>
</div>
</template>
<script>
export default {
data () {
return {
dialog: false,
}
},
}
</script>
App.vue
<template>
<v-app>
<v-main>
<Temp/>
</v-main>
</v-app>
</template>
<script lang="ts">
import { defineAsyncComponent, defineComponent, reactive, ref, Ref, watch, createApp, onMounted} from 'vue'
import Temp from './Temp.vue'
export default defineComponent({
name: 'App',
components: {
Temp
},
setup () {
},
data () {
return {
}
},
})
</script>
And this is what I get:
The problem is that when I click this button dialog is not shown. Is this my mistake or bug in alpha version?
Even the examples in official vuetify docs which use the activator slot don't work properly.
You can just add @click.stop="dialog = true"
to the button that opens the dialog and remove v-on="on"
from it.