第十六章:创建需要缓存的路由组件名称列表 useKeepAliveStore

创建 src/store/modules/keepAlive.ts 并实现 useKeepAliveStore

// src/store/modules/keepAlive.ts


import { defineStore } from 'pinia'
import { ref } from 'vue'

export const useKeepAliveStore = defineStore('keep-alive', () => {
    // 已缓存的组件名称列表
    const list = ref<string[]>([])

    /**
     * 添加缓存
     */
    const add = (name: string | string[]) => {
        if (typeof name === 'string') {
            if (!list.value.includes(name)) {
                list.value.push(name)
            }
        } else {
            name.forEach((v) => {
                if (v && !list.value.includes(v)) {
                    list.value.push(v)
                }
            })
        }
    }

   /**
    * 移除缓存
    */
    const 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)
            })
        }
    }

   /**
    * 清空缓存
    */
    const clear = () => {
        list.value = []
    }

    return { list, add, remove, clear }
})
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容