这是我的目录结构:
pages/
panel.vue
panel/
posts.vue
tags.vue
products.vue
.
.
.
panel.vue
<template>
<nuxt-child keep-alive />
</template>
<script>
mounted() {
this.$echo.channel(`post${this.$auth.user.id}`).on("PostUpdated", (e) => {
//update posts.vue's data
});
}
</script>
在panel.vue
内部,我想知道已经访问了哪些路线。
在/panel
目录下的页面中,我使用$axios
来获取数据。
我使用keep-alive
来存储页面的数据,并防止在下次访问时重新获取数据。
因此,当我进入/panel
页面之一时,我想使用websocket更新访问页面的数据。
例如,当我进入tags.vue
时,如果收到websocket PostUpdated事件(在panel.vue
中定义),则会自动在幕后更新posts.vue
的数据。而且,当我访问posts.vue
时,我希望可以查看最近更新的数据,而无需再次获取。
我希望如果访问过posts.vue
(或者它的数据已存储在keep-alive
中)更新,否则什么也不做。