在实时聊天应用中,聊天卡片是用于显示用户之间消息的重要组件。它们通常包含消息文本、发送者信息和时间戳。实现功能齐全且可定制的聊天卡片对于创建用户友好的聊天体验至关重要。
提供的代码实现了聊天卡片的基本功能,包括:
<div class="chat-body">
<div class="message patient">
<img class="avatar" src="..." alt="avatar" />
<div class="message-content">
<p>Hello, doctor. I'm not feeling well.</p>
</div>
</div>
<div class="message doctor">
<img class="avatar" src="..." alt="avatar" />
<div class="message-content">
<p>Hello, how can I help you?</p>
</div>
</div>
</div>
HTML 结构定义了聊天卡片的布局,包括发送者头像、消息内容和时间戳。
const messages = ref([
{
type: 'patient',
message: 'Hello, doctor. I'm not feeling well.',
time: '10:00 AM',
},
{
type: 'doctor',
message: 'Hello, how can I help you?',
time: '10:02 AM',
},
])
messages
数组存储了聊天卡片的数据,包括消息类型、消息文本和时间戳。
<template v-for="message in messages" :key="message.time">
<div :class="{ 'message': true, 'patient': message.type === 'patient', 'doctor': message.type === 'doctor' }">
<img class="avatar" :src="message.avatar" alt="avatar" />
<div class="message-content">
<p>{{ message.message }}</p>
</div>
</div>
</template>
此模板循环遍历 messages
数组并为每个消息渲染一个聊天卡片。它根据消息类型应用不同的 CSS 类,以实现不同的样式。
const sendMessage = (message) => {
messages.value.push({
type: 'patient',
message,
time: '10:04 AM',
})
}
sendMessage
函数允许用户发送新消息。它将新消息添加到 messages
数组,并自动更新聊天卡片列表。
开发这段代码的过程是一个宝贵的学习经历,让我深入了解了聊天卡片在实时聊天应用中的实现。未来,可以考虑以下拓展和优化: