【发布时间】:2020-01-23 13:36:05
【问题描述】:
安装组件后,我会在页面上获取数据。然后,我希望每次用户登录时都能看到我的组件更新(为此我监听此事件)。现在,我从数据库中获取数据,并在 div“ip”中获得了登录用户。但我打算将这些新数据动态添加到我已经收到的数据中。如何动态更新数据?我想在不刷新页面的情况下使用新插入的用户获取页面。此登录用户出现在此处,并且仅在我刷新页面时才被添加。我想在不需要刷新页面的情况下获得它。这是关于使用新道具重新渲染组件。
在模板中
<div v-for="user in users">
<div class="card-header">{{ user.ip }}</div>
<div class="card-header">{{ user.name }}</div>
</div>
<div v-html="ip"></div>
在脚本中
export default {
data() {
return {
users: [],
ip: ''
}
},
mounted() {
window.Echo.channel('channelName')
.listen('eventIp', (e) => {
this.ip = e
}),
this.fetchData()
},
methods: {
fetchData() {
axios
.get('api/person')
.then(response => (this.users = response.data))
.catch(error => console.log(error));
}
}
}
【问题讨论】:
-
console.log(e);在this.ip=e之前,输出是什么? -
@Caddy DZ 它将我发布的数据显示为一个对象('name' 和 'ip')。
-
然后使用
e来更新你的数据而不是使用Ajax,Echo的目的是在动态变化时广播新数据
标签: vue.js