<script setup>
import { useStore } from './useStore'
const store = useStore()
store.$reset
</script>
// plugins/resetStore.ts
import cloneDeep from 'lodash.clonedeep' //1
export default function resetStore({ store }) {
const initialState = cloneDeep(store.$state) // 2
store.$reset = () => store.$patch(cloneDeep(initialState)) // 3
}
.
// main.ts
...
import resetStore from '@/plugins/pinia/resetStore'
const app = createApp(App)
app.use(createPinia().use(resetStore))
...
.
// component.vue
...
<script lang="ts" setup>
const store = useStore()
onBeforeUnmount(() => {
store.$reset()
})
<script>