Vue是一種流行的JavaScript框架,它可以幫助我們快速構建現代化、可交互的Web應用程序。在這里,我們將看到如何使用Vue創建一個聊天室,使用戶可以與其他人交流。這個聊天室將使用Vue的組件和WebSocket技術,我們將在下面的代碼中詳細解釋。
// 創建WebSocket連接
const socket = new WebSocket("wss://localhost:3000");
// Vue組件
Vue.component('chat-message', {
props: ['message', 'user'],
template: `
<div class="message" :class="{ 'message--mine': isMine }">
<div class="message__user">{{ message.user }}:</div>
<div class="message__content">{{ message.content }}</div>
</div>
`,
computed: {
isMine() {
return this.message.user === this.user;
}
}
});
new Vue({
el: '#app',
data() {
return {
messages: [],
message: ''
};
},
mounted() {
// 監聽WebSocket連接
socket.addEventListener('message', event => {
const message = JSON.parse(event.data);
this.messages.push(message);
});
},
methods: {
// 發送消息
send() {
const message = { user: this.user, content: this.message };
socket.send(JSON.stringify(message));
this.message = '';
}
}
});
在上面的代碼中,我們首先創建了一個WebSocket連接,用于實時通信。然后,我們創建一個名為“chat-message”的Vue組件,用于渲染單個聊天消息。組件具有兩個屬性:message和user。我們使用這些屬性來確定消息是否發送給當前用戶。組件還有一個計算屬性,用于判斷消息是否是當前用戶的。
接下來,我們創建了一個Vue實例,并將其掛載到一個ID為“app”的DOM元素上。我們使用該實例的data選項來存儲消息和用戶輸入。我們還在mounted鉤子函數中監聽WebSocket連接,以便在接收到消息時將消息添加到消息列表中。
最后,我們添加了一個send方法,該方法將用戶輸入的消息發送到WebSocket服務器。我們使用JSON.stringify來將消息對象轉換為字符串,然后在WebSocket上調用send方法。當消息發送后,我們清空用戶輸入以獲得新的消息。
上一篇vue聊天發送
下一篇php touch用法