useStorage.ts 351 B

123456789101112131415
  1. import { ref, watchEffect } from "vue";
  2. type UseStorageReturn<T> = {
  3. storedValue: T;
  4. };
  5. export function useStorage<T>(
  6. key: string,
  7. defaultValue: T
  8. ): UseStorageReturn<T> {
  9. const storedValue = ref<T>(uni.getStorageSync(key) || defaultValue);
  10. watchEffect(() => {
  11. uni.setStorageSync(key, storedValue.value);
  12. });
  13. return storedValue;
  14. }