Vuejs2 使计数器保持最新 [英] Vuejs2 keeping counter up to date

查看:42
本文介绍了Vuejs2 使计数器保持最新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 pusher 为聊天室中的用户列表动态更新计数器值.变量 usersCountvue 实例维护并在模板中提供.vue 调试工具在下面的代码中将其显示为 undefined.我没有将变量正确地从实例传递给模板.

chat-player-list 模板是这样调用的:

<小时/><div class="row"><div class="col-xs-12"><chat-player-messages ref="messages" :messages="messages"></chat-player-messages><h5>敌人闲聊</h5><chat-player-form v-on:chatmessagesent="addMessage" :player="{{ Auth::user() }}"></chat-player-form>

播放器都列出并渲染正常,另外其余的条件函数工作正常.只是 usersCounter 没有呈现.

我的 chat.js 代码包含主要的 vue 实例:

/*** 设置用于聊天的 Vue 组件*/$(document).ready(function(){Vue.component('chat-player-list', require('../components/chat-player-list.vue'));Vue.component('chat-player-messages', require('../components/chat-player-messages.vue'));Vue.component('chat-player-form', require('../components/chat-player-form.vue'));var chatPlayer = new Vue({el: '#sidebar-chat',数据:函数(){返回 {游戏:游戏,消息:[],用户:[],用户数:0};},创建(){this.fetchPlayers();this.fetchMessages();Echo.join(chat_channel).here((用户) => {$.each(users, function(index, value) {$('i#online-' + users[index].id).addClass('faa-ring animation player-online');});this.usersCount = users.length;}).joining((用户) => {$('i#online-' + user.id).addClass('faa-ring animation player-online');this.usersCount = this.usersCount + 1;}).离开((用户)=> {$('i#online-' + user.id).removeClass('faa-ring animation player-online');this.usersCount = this.usersCount - 1;}).listen('ChatMessageSent', (e) => {this.messages.unshift({消息:e.message.message,播放器:e.player});});},方法: {fetchPlayers() {this.users = game.progress.status.players_status;},fetchMessages() {axios.get(chat_get_route).then(响应 => {this.messages = response.data;});},添加消息(消息){this.messages.unshift(message);this.$nextTick(() => {this.$refs.messages.scrollToTop();});axios.post(chat_send_route,消息).then(响应 => {控制台日志(响应数据);});}}});});

在我的模板 chat-player-list.vue 中,我有: