Dalam beberapa tahun kebelakangan ini, sembang masa nyata dan pemesejan segera telah menjadi bahagian penting dalam kehidupan dan kerja harian orang ramai. Sama ada media sosial, kerjasama pasukan atau perkhidmatan pelanggan, semuanya memerlukan komunikasi masa nyata untuk menyokongnya. Vue.js ialah rangka kerja JavaScript yang sesuai untuk membina aplikasi sembang masa nyata dan pemesejan segera. Artikel ini akan memperkenalkan cara menggunakan Vue untuk membina aplikasi sembang masa nyata dan pemesejan segera.
1. Pengenalan kepada Vue dan Socket.io
Vue ialah rangka kerja JavaScript yang popular Ia adalah rangka kerja responsif yang boleh membantu pembangun mengendalikan operasi DOM dan logik mengikat data dengan lebih mudah. Sebagai rangka kerja MVC, Vue berprestasi sangat baik dalam aplikasi satu halaman, terima kasih kepada kebolehsuaian, kecekapan dan kuasa Vue yang sangat tinggi. Socket.io ialah alat yang boleh menyediakan komunikasi masa nyata, dua hala, dipacu peristiwa kepada pelanggan dan pelayan berdasarkan WebSocket.
2. Gabungan Vue dan Socket.io
Membina aplikasi sembang masa nyata dan pemesejan segera memerlukan gabungan Vue dan Socket.io. Dalam Vue, kami boleh mengurus status dalam sembang langsung dan aplikasi pemesejan segera melalui vuex. Kami boleh menggunakan Vuex untuk mengurus maklumat pengguna, maklumat sesi, mesej, pemberitahuan dan data lain yang berkaitan. Dalam Socket.io, kita boleh menggunakannya untuk melaksanakan mekanisme komunikasi masa nyata.
Memasang Vue dan Socket.io memerlukan memasukkan arahan berikut dalam alat baris arahan:
npm install --save vue npm install --save socket.io-client
import io from 'socket.io-client' const socket = io('http://localhost:3000')
mounted() { this.$socket.on('connect', () => { console.log('Connected to server!') }) }
methods: { sendMessage() { this.$socket.emit('message', this.message) } }
rreee
Dalam contoh ini, kami mentakrifkan keadaan awal. Maklumat pengguna, maklumat sesi, mesej dan pemberitahuan, dsb. Kami telah menentukan satu siri mutasi dan tindakan untuk mengendalikan maklumat pengguna, maklumat sesi, mesej, pemberitahuan dan keadaan lain yang berkaitan.import Vue from 'vue' import Vuex from 'vuex' import io from 'socket.io-client' Vue.use(Vuex) export default new Vuex.Store({ state: { user: { id: null, name: null }, rooms: [], activeRoomId: null, messages: [] }, mutations: { setUser(state, user) { state.user = user }, setRooms(state, rooms) { state.rooms = rooms }, setActiveRoomId(state, roomId) { state.activeRoomId = roomId }, addMessage(state, message) { state.messages.push(message) }, clearMessages(state) { state.messages = [] } }, actions: { connect({ commit, dispatch }) { const socket = io('http://localhost:3000') socket.on('connect', () => { console.log('Connected to server!') }) socket.on('user', (user) => { commit('setUser', user) }) socket.on('rooms', (rooms) => { commit('setRooms', rooms) }) socket.on('activeRoomId', (roomId) => { commit('setActiveRoomId', roomId) }) socket.on('message', (message) => { commit('addMessage', message) }) socket.on('clearMessages', () => { commit('clearMessages') }) socket.on('disconnect', () => { console.log('Disconnected from server!') }) }, sendMessage({ state }, message) { const socket = io('http://localhost:3000') const payload = { roomId: state.activeRoomId, message } socket.emit('message', payload) } }, modules: { } })
<template> <div class="chat"> <div class="chat__user"> <h2>{{ user.name }}</h2> </div> <div class="chat__rooms"> <ul> <li v-for="room in rooms" :key="room.id" @click="selectRoom(room.id)"> {{ room.name }} </li> </ul> </div> <div class="chat__messages"> <ul> <li v-for="message in messages" :key="message.id"> {{ message.text }} </li> </ul> </div> <div class="chat__input"> <input type="text" v-model="message"> <button @click="sendMessage()">Send</button> </div> </div> </template> <script> import { mapState, mapActions } from 'vuex' export default { name: 'Chat', computed: { ...mapState(['user', 'rooms', 'activeRoomId', 'messages']), }, methods: { ...mapActions(['connect', 'sendMessage', 'selectRoom']), }, mounted() { this.connect() } } </script>
Atas ialah kandungan terperinci Bagaimana untuk membina aplikasi sembang masa nyata dan pemesejan segera menggunakan Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!