原本的代码中,我利用一个变量taskList
来保存所有的待办事项。写好了对应的增删改查等操作。
此时,我想利用localStorage
来实现临时的存储,这样,刷新页面后,我的操作不会丢失!
方案1
直接在原来的增删改查
等函数中,添加localStorage
自带的setItem、getItem
等方法,实现效果。
方案2
利用watch
来监视taskList
变量,然后,在watch
中进行localStorage
操作。
显然,方案2更合理。
Vue
组件中的vc
实例代码修改如下:
data
块代码修改:
这里需要利用localStorage
读取数据
data() {
return {
taskList: JSON.parse(localStorage.getItem('taskList')) || []
}
}
新增watch
代码块:
这里利用localStorage
对数据进行新增和更新
watch:{
//简写形式存在一个问题:就是无法检测到todo对象内部字段的变化
/*
todos(newVal){
localStorage.setItem('todos',JSON.stringify(newVal));
}
*/
//完整形式,实现深度监视,监视对象内部的字段值变化
todos:{
deep:true,
handler(newVal){
localStorage.setItem('todos',JSON.stringify(newVal));
}
}
}
这里要注意一点,因为,taskList
是一个对象,我需要监视对象内部字段的变化,所以,这里watch
必须要设置深度监视,才能实现相关功能。