如何在 Vuetify 中创建一个Alert,在指定的秒数后消失,类似于Bootstrap Vue中的警报。
<template>
<transition name="fade">
<v-alert v-show="visible" v-bind="$attrs" v-on="$listeners">
<slot></slot>
</v-alert>
</transition>
</template>
<script>
export default {
inheritAttrs: true,
data() {
return {
visible: true,
timer: null
};
},
props: {
duration: {
required: true,
type: Number
}
},
methods: {
fade() {
let value = parseInt(Math.max(this.duration, 0));
if (value != 0)
this.timer = setTimeout(() => (this.visible = false), 1000 * value);
}
},
mounted() {
this.fade();
}
};
</script>
在其他组件中的使用:
<vt-alert
v-if="hasMessage()"
:type="message.type"
:duration="message.duration"
>{{message.body}}</vt-alert>
hasMessage
是检查是否设置消息的实用程序函数。
但这并不起作用。更多详情here,
1条答案
按热度按时间y0u0uwnf1#
API
(代码更少=更易于维护):https://vuetifyjs.com/en/components/alerts/#api
A.显示/隐藏
警报获取值(假=〉隐藏。真=〉显示)。
在点击、悬停、计时器或任何逻辑上切换
alert
到true
/false
。B.过渡支柱
使用任何你想要的内置过渡。www.example.comhttps://vuetifyjs.com/en/styles/transitions/#motion
<v-alert transition="fade-transition">
A + B:基本的"hello world"示例
点击显示警报&
slide-y-transition
3秒后输出。一个二个一个一个
额外功能示例
当警报可见时显示计时器(3..2..1)+点击按钮时切换警报。
关于
dismissible
最好的办法是创建一个自定义的X
按钮(并使用相同的显示/隐藏函数)***直到API提供更多与此功能相关的选项(样式/位置等)。