Skip to content

18 - useLocalStorage #2005

Open
Open
@oreo2990

Description

@oreo2990
// your answers
<script setup lang='ts'>

import { ref , watch} from "vue"

/**
 * Implement the composable function
 * Make sure the function works correctly
*/
function useLocalStorage(key: string, initialValue: number) {
  const value = ref(initialValue)
  localStorage.setItem(key,JSON.stringify(value.value))

  watch(value,(val)=>{
    localStorage.setItem(key,JSON.stringify(val))
  })


  return value
}

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