localStorage:关闭窗口后缓存还在 值只能是字符串 localStorage只能设置字符串sessionStorage:临时会话框缓存,刷新可以存在,关闭窗口则无
//1.设置缓存sessionStorage.setItem()//2.获取缓存sessionStorage.getItem()
<template> <div class="home"> <h2>todoList</h2> <input type="text" v-model="keyword" @keyup.enter="handleEnter" /> <div v-for="item of arr" :key="item.word"> <input type="checkbox" v-model="item.checked" /> {{item.word}} </div> </div></template><script>export default { name: "home", data() { return { keyword: "", arr: [] }; }, /* [{word:"vue",checked:false},{word:"react",checked:false}] */ methods: { handleEnter() { /* localStorge值只能是字符串 JSON.stringify JSON.parse */ this.arr.push({ word: this.keyword, checked: false }); var words = JSON.parse(localStorage.getItem("words")); words.push({ word: this.keyword, checked: false }); localStorage.setItem("words", JSON.stringify(words)); } }, mounted() { //有缓存则取缓存,没有缓存设置缓存 let words = localStorage.getItem("words"); if (words) { this.arr = JSON.parse(words); } else { localStorage.setItem("words", "[]"); } }, watch: { arr: { handler(newVal) { var words = JSON.parse(localStorage.getItem("words")); words = newVal; localStorage.setItem("words", JSON.stringify(words)); }, deep: true } }};</script>