pinia-shared-state

Sync your Pinia state across browser tabs.
Requirements
Install
npm install pinia-shared-state
Usage
import { PiniaSharedState } from 'pinia-shared-state';
pinia.use(
PiniaSharedState({
enable: true,
initialize: false,
type: 'localstorage',
}),
);
const useStore = defineStore({
id: 'counter',
state: () => ({
count: 0,
foo: 'bar',
}),
share: {
omit: ['foo'],
enable: true,
initialize: true,
},
});
Vanilla usage:
import { share } from 'pinia-shared-state';
import { onMounted, onUnmounted } from 'vue';
import useStore from './store';
const counterStore = useStore();
onMounted(() => {
const { unshare } = share('counter', counterStore, { initialize: true });
onUnmounted(() => {
unshare();
});
});
License
MIT