消息

消息组件用于显示内联消息。


import Message from 'primevue/message';

消息组件需要内容来显示。


<Message>Message Content</Message>

severity 选项指定消息的类型。


<Message severity="success">Success Message</Message>
<Message severity="info">Info Message</Message>
<Message severity="warn">Warn Message</Message>
<Message severity="error">Error Message</Message>
<Message severity="secondary">Secondary Message</Message>
<Message severity="contrast">Contrast Message</Message>

可以使用图标属性和icon 插槽来自定义消息的图标


<Message severity="info" icon="pi pi-send">Info Message</Message>
<Message severity="success">
    <template #icon>
        <Avatar image="/images/avatar/amyelsner.png" shape="circle" />
    </template>
    <span class="ml-2">How may I help you?</span>
</Message>

variant 值配置为 outlined,以用于具有边框且没有背景的消息。


<Message severity="success" variant="outlined">Success Message</Message>
<Message severity="info" variant="outlined">Info Message</Message>
<Message severity="warn" variant="outlined">Warn Message</Message>
<Message severity="error" variant="outlined">Error Message</Message>
<Message severity="secondary" variant="outlined">Secondary Message</Message>
<Message severity="contrast" variant="outlined">Contrast Message</Message>

variant 值配置为 simple,以用于没有边框、背景和内边距的消息。


<Message severity="success" variant="simple">Success Message</Message>
<Message severity="info" variant="simple">Info Message</Message>
<Message severity="warn" variant="simple">Warn Message</Message>
<Message severity="error" variant="simple">Error Message</Message>
<Message severity="secondary" variant="simple">Secondary Message</Message>
<Message severity="contrast" variant="simple">Contrast Message</Message>

消息组件提供了 smalllarge 尺寸作为基础尺寸的替代方案。


<Message size="small" icon="pi pi-send">Small Message</Message>
<Message icon="pi pi-user">Normal Message</Message>
<Message size="large" icon="pi pi-check">Large Message</Message>

表单中的验证错误将使用 error 严重性显示。


<Message v-if="!username || !email" severity="error" icon="pi pi-times-circle" class="mb-2">Validation error</Message>
<Message v-if="username && email" severity="success" icon="pi pi-times-circle" class="mb-2">Form is valid</Message>
<div class="flex flex-col gap-1">
    <InputText v-model="username" placeholder="Username" aria-label="username" :invalid="!username" />
    <Message v-if="!username" severity="error" variant="simple" size="small">Username is required</Message>
</div>
<div class="flex flex-col gap-1">
    <InputText v-model="email" placeholder="Email" aria-label="email" :invalid="!email" />
    <Message v-if="!email" severity="error" variant="simple" size="small">Email is not valid</Message>
</div>

可以使用标准的 v-for 指令显示多个消息。


<Button label="Show" @click="addMessages()" />
<Button label="Clear" severity="secondary" class="ml-2" @click="clearMessages()" />
<transition-group name="p-message" tag="div" class="flex flex-col">
    <Message v-for="msg of messages" :key="msg.id" :severity="msg.severity" class="mt-4">{{ msg.content }}</Message>
</transition-group>

启用 closable 选项以显示用于删除消息的图标。


<Message closable>Closable Message</Message>

可以通过以毫秒为单位定义 life 来使消息自动消失。


<Button label="Show" @click="showMessage" :disabled="visible" class="mb-4" />
<Message v-if="visible" severity="success" :life="3000">Auto Disappear Message</Message>

屏幕阅读器

消息组件使用 alert 角色,该角色隐式将 aria-live 定义为 “assertive”,将 aria-atomic 定义为 “true”。由于任何属性都会传递给根元素,因此还可以选择使用诸如 aria-labelledbyaria-label 之类的属性。

关闭元素是一个带有 aria-labelbutton,默认情况下,它引用 locale API 的 aria.close 属性,您可以使用 closeButtonProps 自定义元素并覆盖默认的 aria-label

关闭按钮键盘支持

按键功能
enter关闭消息。
空格关闭消息。