【发布时间】:2020-06-03 19:01:00
【问题描述】:
每次事件总线接收到新数据时都会调用计算函数。如何重新渲染组件,以便显示新数据?
<template lang="pug">
div
div(v-for='user in filtered')
p {{ user.name }}
</template>
<script>
computed: {
filtered() {
// filter by using data
return this.users.filter((user) =>
return this.data.includes(user.name)
);
}
},
created() {
EventBus.$on('data', (data) => {
this.data = data;
}
},
data() {
return {
data: [],
users: [
// users
]
}
}
</script>
【问题讨论】:
-
能分享一下监听总线的代码吗?
-
我认为在计算属性中,您应该依赖反应性道具或数据,否则您将看不到组件渲染的任何变化。
-
用户是如何从数据中计算出来的?您是否记录了从事件总线收到的数据?
-
@Baboo_事件总线正常工作,当接收到新数据时,触发计算但不重新渲染UI
标签: javascript vue.js vue-component pug