关于删除本地localStorage失效问题

JS原生第三题(增改删过滤)

//removeLocalStorage(删除本地数据)
  function  removeTaskFromLocalStorage(taskItem){

    //为字符串类型的数据
    // let  ex = taskItem.textContent;
    // console.log( typeof ex);

    //数据
    let caches;
    //getItem读取数据
    if (localStorage.getItem('caches') == null) {
        //讲json格式转换为数组,因为数组的方法比较多
        caches = [];
    } else {
        // 得到的字符串类型的数据,需要转换成数组
        caches = JSON.parse(localStorage.getItem('caches'));
    }

    //index肯定为-1,因为是数组遍历的,怎么样结果都为-1 //bug
    let index = caches.indexOf(taskItem.textContent);
    caches.splice(index,1);
    localStorage.setItem('caches',JSON.stringify(caches));
  }

 第一种方法跟着B站视频敲的没有效果,(不知道为什么没效果)

第二种方法是用indexOf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue可以通过watch属性来监听本地localStorage的变化。具体步骤如下: 1. 在Vue组件中定义一个watch属性,用来监听localStorage的变化。 2. 在watch属性中定义一个函数,用来处理localStorage的变化。 3. 在函数中使用Vue.set方法来更新组件中的数据。 4. 在localStorage发生变化时,调用Vue.set方法来更新组件中的数据。 示例代码如下: ``` <template> <div> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: '' } }, watch: { 'localStorage.message': function(newVal) { Vue.set(this, 'message', newVal) } }, mounted() { this.message = localStorage.getItem('message') } } </script> ``` 在上面的代码中,我们使用了watch属性来监听localStorage的变化。当localStorage中的message发生变化时,watch属性中的函数会被调用,然后使用Vue.set方法来更新组件中的message数据。在组件挂载时,我们从localStorage中获取message数据,并将其赋值给组件中的message数据。这样,当localStorage中的message发生变化时,组件中的message数据也会随之更新。 ### 回答2: Vue是一种现代化的JavaScript框架,可以用于创建易于维护和扩展的Web应用程序。在Vue中,我们可以监听本地localStorage的变化,以便在应用程序中动态更新。 localStorage是浏览器内置的键值对储存系统,可以将数据永久储存在本地浏览器中。Vue提供了一个watch属性来监听localStorage的变化。在Vue实例中,我们可以通过$watch方法来设置一个watcher来监听localStorage的变化。例如: ```javascript export default { data () { return { message: '' } }, created () { this.message = localStorage.getItem('message') | | 'no message' this.$watch('message', function (newValue) { localStorage.setItem('message', newValue) }) } } ``` 在上面的代码中,我们首先在Vue实例中创建一个名为message的数据属性,并设置初始值为空字符串。在created生命周期钩子函数中,我们检查本地localStorage是否有名为'message'的数据;如果有,我们将其分配给message属性;否则,我们将message属性设置为“no message”。接下来,我们使用Vue的$watch方法来监听message属性的变化。当message属性的值发生变化时,$watch函数将被调用,并且将message属性的新值设置到本地localStorage中。 需要注意的是,监听localStorage的变化可能会导致无限循环更新,因此需要进行适当的处理。例如,可以在设置localStorage值之前进行值比较来确保不会无限循环更新。 ### 回答3: Vue是一个流行的JavaScript框架,它提供了很多便捷的功能。其中,Vue的数据绑定能力,让开发Vue应用程序非常简单。在Vue中,我们可以使用监测属性来监听数据的变化,但有时候我们需要监听本地存储(localstorage)的变化。下面,我们将介绍如何在Vue中监听localstorage。 1. 使用Vue的computed属性封装localstorage数据 为了方便访问localstorage数据,我们需要将其封装在Vue的computed属性中。 ``` computed: { localData () { return JSON.parse(localStorage.getItem('data')) } } ``` 这里,我们使用了JSON.parse解析了localstorage中的数据。 2. 使用watch监听computed属性 一旦Vue的computed属性中的localData值发生变化,就可以执行watch方法进行操作。 ``` watch: { localData (newVal) { console.log('localData has changed', newVal) } } ``` 在这个watch方法中,我们可以使用console.log方法,打印出localData新的值。 3. 使用Vue的mounted方法初始化本地数据 为了确保localData属性能够在mounted时被正确初始化,我们需要使用mounted方法。这个mounted方法在组件被挂载后执行。 ``` mounted() { localStorage.setItem('data', JSON.stringify({ name: 'vue-localstorage' })) } ``` 在这个mounted方法中,我们可以使用localStorage.setItem方法来初始化本地数据。在这个例子中,我们使用了一个包含name属性的简单对象。 总结 通过使用Vue的computed属性、watch方法和mounted方法,我们可以轻松地监听localstorage数据。在这个方法中,我们封装了localstorage数据,使用watch方法监听数据变化,使用mounted方法初始化本地数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值