Skip to content

18 - 实现本地存储函数 #1827

Open
@klbss1995

Description

@klbss1995
// 你的答案
<script setup lang='ts'>

import { ref,computed } from "vue"

/**
 * Implement the composable function
 * Make sure the function works correctly
*/
function useLocalStorage(key: string, initialValue: any) {
  const value = ref(initialValue);
  localStorage.setItem(key,initialValue);
  const counter = computed({
    get:()=> {
      value.value = localStorage.getItem(key);
      return value.value;
    },
    set:(val)=> {
      localStorage.setItem(key,val);
      value.value = val
    }
  })
  return counter
}

const counter = useLocalStorage("counter", 0)

// We can get localStorage by triggering the getter:
console.log(counter.value)

// And we can also set localStorage by triggering the setter:

const update = () => counter.value++

</script>

<template>
  <p>Counter: {{ counter }}</p>
  <button @click="update">
    Update
  </button>
</template>

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions