keepAlive.ts
856 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const useKeepAliveStore = defineStore(
// 唯一ID
'keepAlive',
() => {
const list = ref<string[]>([])
function add(name: string | string[]) {
if (typeof name === 'string') {
!list.value.includes(name) && list.value.push(name)
}
else {
name.forEach((v) => {
v && !list.value.includes(v) && list.value.push(v)
})
}
}
function remove(name: string | string[]) {
if (typeof name === 'string') {
list.value = list.value.filter((v) => {
return v !== name
})
}
else {
list.value = list.value.filter((v) => {
return !name.includes(v)
})
}
}
function clean() {
list.value = []
}
return {
list,
add,
remove,
clean,
}
},
)
export default useKeepAliveStore