createGlobalState 
Keep states in the global scope to be reusable across Vue instances.
Demo 
name: 'Banana'
color: 'Yellow'
size: 'Medium'
Usage 
Without Persistence (Store in Memory) 
js
// store.js
import { ref } from 'vue'
import { createGlobalState } from '@vueuse/core'
export const useGlobalState = createGlobalState(
  () => {
    const count = ref(0)
    return { count }
  }
)A bigger example:
js
// store.js
import { computed, ref } from 'vue'
import { createGlobalState } from '@vueuse/core'
export const useGlobalState = createGlobalState(
  () => {
    // state
    const count = ref(0)
    // getters
    const doubleCount = computed(() => count.value * 2)
    // actions
    function increment() {
      count.value++
    }
    return { count, doubleCount, increment }
  }
)With Persistence 
Store in localStorage with useStorage
js
// store.js
import { createGlobalState, useStorage } from '@vueuse/core'
export const useGlobalState = createGlobalState(
  () => useStorage('vueuse-local-storage', 'initialValue'),
)js
// component.js
import { useGlobalState } from './store'
export default defineComponent({
  setup() {
    const state = useGlobalState()
    return { state }
  },
})Type Declarations 
typescript
/**
 * Keep states in the global scope to be reusable across Vue instances.
 *
 * @see https://vueuse.org/createGlobalState
 * @param stateFactory A factory function to create the state
 */
export declare function createGlobalState<Fn extends AnyFn>(
  stateFactory: Fn,
): FnSource 
Contributors 
Changelog 
v10.0.0-beta.0 on 3/14/2023