pinia重置state

666 阅读1分钟

vue3+pinia 重置state

做一个全局登录弹窗,但是在弹窗关闭时需要清空弹窗内的内容,因为是全局的弹窗,所以这里弹窗的所有数据都用的pinia储存的,因为绑定的数据有两层,所以这里使用到了对象的深拷贝。

import {defineStore} from "pinia";
import {Names} from "@/store/name";
import {message} from "ant-design-vue";
import {login} from "@/view/components/componentApi";
let closeData = {
    isShow:false,
    data:{
        flag:false
    },
}


export const useLoginModalStore = defineStore(Names.LOGINMODAL,{
    state:()=> {
        return {
            isShow:false,
            data:{
                phone: '',
            }
        }
    },
    getters:{},
    actions:{
        ...
        // 模态框关闭 重置数据
        handleModalClose(){
            this.$state = JSON.parse(JSON.stringify(closeData)) // 深拷贝对象 并赋值给pinia
        }
    }
})