写一个在线聊天的Vue2组件
时间: 2023-12-28 12:56:26 浏览: 146
好的,我明白您的要求,并且我可以为您提供有关Vue2组件的代码示例。以下是简单的Vue2组件,可用于在线聊天:
```
<template>
<div class="chat">
<div class="chat-header">
<h2>Online Chat</h2>
</div>
<div class="chat-messages">
<ul>
<li v-for="message in messages">
<span>{{ message.user }}:</span>{{ message.text }}
</li>
</ul>
</div>
<div class="chat-input">
<input type="text" v-model="newMessage" @keyup.enter="sendMessage">
<button @click="sendMessage">Send</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
messages: [],
newMessage: ''
}
},
methods: {
sendMessage() {
if (this.newMessage) {
this.messages.push({
user: 'You',
text: this.newMessage
})
this.newMessage = ''
}
}
}
}
</script>
<style scoped>
.chat {
display: flex;
flex-direction: column;
height: 100%;
}
.chat-header {
height: 50px;
display: flex;
justify-content: center;
align-items: center;
background-color: #333;
color: #fff;
}
.chat-messages {
flex-grow: 1;
overflow-y: scroll;
padding: 10px;
background-color: #f2f2f2;
}
.chat-messages ul {
list-style: none;
margin: 0;
padding: 0;
}
.chat-messages li {
margin-bottom: 10px;
}
.chat-input {
height: 50px;
display: flex;
justify-content: center;
align-items: center;
}
.chat-input input {
flex-grow: 1;
margin-right: 10px;
padding: 10px;
}
.chat-input button {
padding: 10px;
background-color: #333;
color: #fff;
border: none;
}
.chat-input button:hover {
cursor: pointer;
opacity: 0.8;
}
</style>
```
该组件包含一个聊天窗口和输入框,用户可以使用文本发送新消息。此外,它还包含一个Vue2数据对象,用于追踪消息列表和新消息的状态,并且有相应的方法来添加新的消息到列表中。
希望这个代码示例有助于您开发在线聊天的Vue2组件。
阅读全文