love_php/resources/assets/js/app.js

64 lines
1.9 KiB
JavaScript
Raw Normal View History

2026-04-02 09:20:51 +08:00
/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
require('./bootstrap');
window.Vue = require('vue');
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
Vue.component('example', require('./components/Example.vue'));
Vue.component('chat-message', require('./components/ChatMessage.vue'));
Vue.component('chat-log', require('./components/ChatLog.vue'));
Vue.component('chat-composer', require('./components/ChatComposer.vue'));
const app = new Vue({
el: '#app',
data: {
messages: [],
usersInRoom: []
},
methods: {
addMessage(content) {
// Add to existing messages
this.messages.push(content);
// Persist to the database etc
axios.post('/messages', content).then(response => {
// Do whatever;
})
}
},
created() {
axios.get('/messages').then(response => {
this.messages = response.data;
});
Echo.channel('chat.with.users')
// .here((users) => {
// this.usersInRoom = users;
// })
// .joining((user) => {
// this.usersInRoom.push(user);
// })
// .leaving((user) => {
// this.usersInRoom = this.usersInRoom.filter(u => u != user)
// })
.listen('MessagePosted', (e) => {
console.log(e.message);
this.messages.push({
message: e.message,
user: e.user
});
});
}
});