fix: mitt v3 on() 返回 void,改用 off() 取消订阅
This commit is contained in:
@@ -89,26 +89,33 @@ watch(activeGameId, () => {
|
||||
/** 首次加载 */
|
||||
fetchRoomList()
|
||||
|
||||
// ===== SSE 实时事件订阅处理函数 =====
|
||||
/** 新房间创建 → 添加到列表头部 */
|
||||
function onRoomCreated(room: RoomItem) {
|
||||
rooms.value.unshift(room)
|
||||
}
|
||||
/** 房间状态更新 → 局部替换 */
|
||||
function onRoomUpdated(room: RoomItem) {
|
||||
const idx = rooms.value.findIndex((r) => r.id === room.id)
|
||||
if (idx >= 0) {
|
||||
rooms.value[idx] = room
|
||||
}
|
||||
}
|
||||
/** 房间移除 → 从列表中删除 */
|
||||
function onRoomRemoved({ roomId }: { roomId: string }) {
|
||||
rooms.value = rooms.value.filter((r) => r.id !== roomId)
|
||||
}
|
||||
|
||||
// ===== SSE 实时事件订阅 =====
|
||||
onMounted(() => {
|
||||
const offs = [
|
||||
// 新房间创建 → 添加到列表头部
|
||||
sseBus.on('room_created', (room: RoomItem) => {
|
||||
rooms.value.unshift(room)
|
||||
}),
|
||||
// 房间状态更新 → 局部替换
|
||||
sseBus.on('room_updated', (room: RoomItem) => {
|
||||
const idx = rooms.value.findIndex((r) => r.id === room.id)
|
||||
if (idx >= 0) {
|
||||
rooms.value[idx] = room
|
||||
}
|
||||
}),
|
||||
// 房间移除 → 从列表中删除
|
||||
sseBus.on('room_removed', ({ roomId }: { roomId: string }) => {
|
||||
rooms.value = rooms.value.filter((r) => r.id !== roomId)
|
||||
})
|
||||
]
|
||||
onUnmounted(() => offs.forEach((fn) => fn()))
|
||||
sseBus.on('room_created', onRoomCreated)
|
||||
sseBus.on('room_updated', onRoomUpdated)
|
||||
sseBus.on('room_removed', onRoomRemoved)
|
||||
})
|
||||
onUnmounted(() => {
|
||||
sseBus.off('room_created', onRoomCreated)
|
||||
sseBus.off('room_updated', onRoomUpdated)
|
||||
sseBus.off('room_removed', onRoomRemoved)
|
||||
})
|
||||
|
||||
/** 筛选后的房间列表 */
|
||||
|
||||
Reference in New Issue
Block a user