Vue3中数组filter方法,使用reactive不更新界面,而使用ref定义更新界面

2023-11-01

Vue3中使用reactive定义数组,对其进行更改不更新界面,也检测不到变化,但数据变了

let todoList = reactive(JSON.parse(localStorage.getItem('todoList')) || [])
...
function clearAllDoneTodo(){
      console.log(todoList) 
      todoList = todoList.filter(todo=>!todo.done)
      console.log(todoList,"@@")
    }

删除跳舞和睡觉事件,输出打印前后的todolist
在这里插入图片描述
在这里插入图片描述

可以看到todolist由Proxy(Array) 变为 [Proxy(Object)…Proxy(Object)]
界面是没有更新的,localStorage也没变,只是todolist变了

下面使用ref定义数据

 let todoList = ref(JSON.parse(localStorage.getItem('todoList')) || [])
 ...
 function clearAllDoneTodo(){
   console.log(todoList.value)
   todoList.value = todoList.value.filter(todo=>!todo.done)
   console.log(todoList.value,"@@")
 }

在这里插入图片描述

删除睡觉和跳舞,可以看到界面已删除且localStorage也同步删除了

在这里插入图片描述
在这里插入图片描述

输出前后todolist,可以看到由Proxy(Array)变为Proxy(Array),且检测到todolist数组变化

watch(todoList,(newV,oldV)=>{
      console.log("todolist被修改了")
      localStorage.setItem('todoList',JSON.stringify(newV))
    },{deep:true})

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3中数组filter方法,使用reactive不更新界面,而使用ref定义更新界面 的相关文章

随机推荐

  • 向量化执行引擎框架 Gluten 正式开源!

    近日举办的 Databricks Data AI Summit 2022 上 来自 Intel 的陈韦廷和来自 Kyligence 的张智超共同分享了 Intel 和 Kyligence 两家企业自 2021 年合作共建的全新开源项目 Gl
  • keil中出现了莫名其妙的error: #18: expected a “)“错误

    今天在使用keil进行编程时 突然出现了error 18 expected a 的错误 查看出现错误的地方时却发现并没有出现错误 最终发现 原因 使用sprintf时 表示的双引号未使用转义字符 解决方法 在要表示的双引号前添加转义字符
  • 安装Anaconda/Python3.9/Tensorflow

    安装Anaconda Python3 9 Tensorflow 安装Anaconda 官网安装 开梯子 Download即可 打开下载好的安装包 按照提示 一路 Next 选择安装路径 这里官方并没有推荐自动配置环境变量 自动或手动配置均可
  • 【python量化】将极限学习机(Extreme Learning Machine)用于股票价格预测

    写在前面 下面的这篇文章首先将介绍极限学习机 Extreme Learning Machine ELM 的基本原理 然后通过python实现ELM 并将其用于股票价格预测当中 原代码在文末进行获取 1 极限学习机的基本原理 极限学习机 Ex
  • scrapy爬取链接

    近期因为工作需要 开始学习和写爬虫 学习到了很多内容 就整理了一下发上来 需求 这里爬虫的目的是检测网站的漏洞 因此希望做成类似于burpSuit的历史记录一样的 初步需求是简单地爬取网站的链接 去重 尝试绕过反爬虫 更进一步的是希望像bu
  • React既在constructor内部写state又在外部写了state的情况

    React既在constructor内部写state又在外部写了state的情况下 state到底是里面生效还是外面生效 查了一下 没有说这俩同时的帖子 所以自己验证的时候第一个想法是考虑代码的顺序 还有constructor的特殊性 看了
  • 今天在做微信分享功能的时候,遇到项目部署后出现 config:invalid url domain 弹窗提示的解决办法

    产生此错误的原因是微信公众号后台配置的微信安全网址跟当前页面的域名不一致导致的 要解决这种情况就需要在公众号的后台设置js接口安全域名 打开微信公众平台 把MP verify sfpa0ES1106ZRXnp txt 这个文件放到你的服务器
  • Codeforces 808G(KMP+DP)

    转移的时候要注意对于S 0 i 后缀的最长匹配 如果最长匹配为整个T串 那么就可以开始转移 转移时新出现的T可以从上一个完整的T的公共前缀的next转移加1过来 这就相当于用上一个T中的后缀作为当前T的前缀 不断求NEXT求出一个最大的转移
  • 蛇形矩阵/算法

    常见的蛇形矩阵 1 回性蛇形矩阵 2 上三角s型蛇形矩阵 3 完整s型蛇形矩阵 回型蛇形矩阵 输入数据 x是作为横坐标起点 y纵坐标起点 思路 四个方向右下左上 顺时针填进数字 每一次都可以用while循环一行一列依次填写 每次判断下要填的
  • Android ANR问题定位 实战

    在Android开发过程中 ANR问题可能是非常常见的一个问题 下面我分享一个亲身经历的ANR问题以及解决方法 1 发生ANR 必然会有log日志 在系统的data anr目录下 我们将所有的anr log日志pull出来 由于权限的原因
  • Lua实现定时器

    Lua实现定时器 An highlighted block local index 1 local delays local elasped 0 local function SetTimeout delay fn table insert
  • Dynamics CRM2011自定义框架解决方案

    Dynamics CRM2011自定义框架解决方案 解决方案文件下载 一 目的 许多客户习惯之前系统自定义开发的页面 操作习惯或界面风格 但使用了Dynamics CRM2011后只能使用产品自带的风格 为解决此类问题提供了此解决方案 在C
  • 阿里巴巴为什么不用 ZooKeeper 做服务发现?

    转载自 https developer aliyun com article 601745 历史的迷思 站在未来的路口 回望历史的迷途 常常会很有意思 因为我们会不经意地兴起疯狂的念头 例如如果当年某事提前发生了 而另外一件事又没有发生会怎
  • 面向对象的程序设计思想

    面向对象是当今主流的一种程序设计理念和设计规范 它取代了早期的 结构化 过程设计开发技术 主张一切皆为对象 程序以人的思维模式去解决问题 面向对像的程序是由类组成的 每个类包含对用户公开的特定功能部分和隐藏的实现部分 面向对象 Object
  • 人工智能练习题 + 知识点汇总(期末复习版)

    目录 第一章 人工智能绪论 第二章 知识与谓词 第三章 谓词与自然演绎推理 第四章 语义网表示法和框架表示法 第五章 归结原理 第六章 置换和合一 第七章 定理证明和问题求解 第八章 状态空间法和问题归约法 第九章 启发式搜索 第十章 与或
  • vite+element-plus项目基础搭建

    vite element plus项目基础搭建 1 引言 2 为什么是Vite 3 为什么是Element plus 4 项目搭建 5 参考文献 1 引言 其实本来不应该写这种CSDN比较多的博文的 主要是因为比较多 然后想解决问题的时候有
  • 设置ssh登录Linux服务器和git上ssh的使用

    设置ssh登录Linux服务器 前言 环境 配置 客户端 服务器端 可能碰到的问题 使用密钥命令登录依然提示输入密码 git如何使用ssh key 前言 我们在远程Linux服务器或者使用git的时候都需要输入密码登录后进行操作 在进行频繁
  • PaddleOCR对于手写符号识别,从零开始搭建(包括期间遇到的所有问题)

    需求 需要对手写图片进行识别 勾 叉 圈 识别成对于的 v x o 其他的符号识别成 e 搭建环境 win10 gpu模式 用cpu搭建过一版 但是cpu训练太慢 搭建cpu期间的问题比gpu问题的少 使用gpu的需要有一块N卡 英伟达 我
  • 非root用户安装 Python + MySQLdb 及使用

    资源不足时要充分发挥主观能动性 没有测试机的root权限 但想用python脚本对数据库进行压测 只能在自己的目录下安装 所以configure的 prefix以及后来install MySQLdb时的路径选项很重要 1 Python ta
  • Vue3中数组filter方法,使用reactive不更新界面,而使用ref定义更新界面

    Vue3中使用reactive定义数组 对其进行更改不更新界面 也检测不到变化 但数据变了 let todoList reactive JSON parse localStorage getItem todoList function cl