首页 > 其他分享 >Vue3数据无法显示/数据无法修改

Vue3数据无法显示/数据无法修改

时间:2023-05-04 16:24:03浏览次数:29  
标签:text Vue3 list 响应 let 无法 数据

问题描述:

昨天朋友问了我一个关于Vue3的问题,给他解答后,想起貌似自己当初也曾被这个问题困惑过,只不过被善用搜索引擎后找到了问题所在。

现在考虑到可能有些朋友搜不到解决方法,所以现在用它的表现形式作为标题,可能更便于搜索到。

现在重现一下这个问题:

<div v-for="(item,idx) in list" :key="idx">
  {{ item }}
</div>

<script setup>
let list = [];

onMounted(() => {
  // 在这里给 list 赋值
})
</script>

代码的思路为:声明一个名为list数组,在组件初始化时,获取值并赋值到list数组中存储,然后在组件中渲染出来。

但是最后数据并没有显示,这个问题一般会出现在刚接触 Vue 或刚刚从 Vue2 转到 Vue3 的人身上。

问题原因:

问题的原因在于前面的list数组并不是响应式的,Vue2 和 Vue3 声明响应式的方式不同,在 Vue2 中

<script>
export default {
  data() {
    return {
	list: [],  //此时 list 是响应式的,对 list 的值进行修改,页面中对应的数据也会进行变化。
	text: ""  //此时 text 也是响应式的。
    }
  }
}
</script>

但在 Vue3 中

<script setup>
let list = []  //此时 list 不是响应式的,对 list 的值进行修改,页面中对应的数据不会进行变化。
let text = ""  //此时 text 也不是响应式的
</script>

Vue3 中正确的声明响应式:

<script setup>
import { ref,reactive } from 'vue'

let list = reactive([])  //此时 list 是响应式的
let text = ref("")  //此时 text 是响应式的
</script>

具体可以去看 Vue3 官方文档中基础 - 响应式基础这部分。

总结:

数据无法显示/数据无法修改是因为该变量不是响应式的,前面由于list数组为空,所以才没有数据显示,且由于它不是响应式的,后面对list数组进行的任何修改,都不会使Dom更新。

标签:text,Vue3,list,响应,let,无法,数据
From: https://www.cnblogs.com/FanJPson/p/17371596.html

相关文章

  • DAMA数据管理知识体系指南(1):数据管理(转载)
    数据管理是DMBOK的第一章,该章高度概括了整本书的内容,梳理了数据管理的领域、环境因素、基本原则、实现路径等知识内容。有关DABOK的综述和学习方法可以参考:DAMA数据管理知识体系指南(0):综述&学习指南。一、数据管理的原则1、整体原则解读上图已经基本表达了在数据管理过程中,所......
  • Django如何更换默认的数据库?
    问题:Django默认的sqlite3不好用。如何更换呢?解决:第一步:配置文件在setting中--更改databaseDATABASES={#'default':{#'ENGINE':'django.db.backends.sqlite3',#'NAME':BASE_DIR/'db.sqlite3',#......
  • 使用Kepserver 自带 DataLogger 功能 实现工控数据转储关系型数据库
    本文以Mysql数据库为例,介绍使用kepserver的datalogger功能转储数据到mysql第一步:下载安装MysqlODBC数据库驱动前往官网下载ODBC驱动https://downloads.MySQL.com/archives/c-ODBC/建议下载msi格式的安装文件  下载完成后,直接安装。如果安装过程报这个错,那就下载......
  • 学习使用benchmarksql压测数据库
    介绍benchmarksql是一款符合TPC-C基准压力测试工具,TPC-C是衡量在线事务处理的基准。TPC-C模型是模拟一个商品批发公司的销售模型,这个模型涵盖了一个批发公司面向客户对一系列商品进行销售的过程,这包括管理订单,管理库存,管理账号收支等操作。这些操作涉及到仓库、商品、客户、订单......
  • 第十二章.电商产品评论数据情感分析
    1、评论去重的代码importpandasaspdimportreimportjieba.possegaspsgimportnumpyasnp#去重,去除完全重复的数据reviews=pd.read_csv("./reviews.csv")reviews=reviews[['content','content_type']].drop_duplicates()content=revi......
  • Spring17_配置数据源6
    一、数据源(连接池)的作用数据源(连接池)是为提高程序性能而出现的事先实例化数据源,初始化部分连接资源使用连接资源时从数据源中获取使用完毕后将连接资源归还给数据源常见的数据源(连接池):DBCP、C3P0、BoneCP、Druid等二、数据源开发步骤1.导入数据源的坐标和数据......
  • 数据挖掘-电商产品评论数据情感分析
    importpandasaspdimportreimportjieba.possegaspsgimportnumpyasnp#去重,去除完全重复的数据reviews=pd.read_csv("./reviews.csv")reviews=reviews[['content','content_type']].drop_duplicates()content=reviews['co......
  • 20 18 | 加解密服务平台:如何让敏感数据存储与传输更安全?
    你好,我是李智慧。在一个应用系统运行过程中,需要记录、传输很多数据,这些数据有的是非常敏感的,比如用户姓名、手机号码、密码、甚至信用卡号等等。这些数据如果直接存储在数据库,记录在日志中,或者在公网上传输的话,一旦发生数据泄露,不但可能会产生重大的经济损失,还可能会使公司陷入重......
  • 24 22 | 大数据平台设计:如何用数据为用户创造价值?
    特别说明:本文相关技术仅用于技术展示,具体实践中,数据收集和算法应用需要遵循国家个人信息保护法与信息安全法等有关法律制度。你好,我是李智慧。现在,业界普遍认为互联网创新已经进入下半场,依靠技术创新或者商业模式创新取得爆发性发展的机会越来越少。于是大家把目光转向精细化运......
  • 《asyncio 系列》5. 基于 asyncio + SQLAlchemy 并发请求数据库
    楔子上一篇文章探讨了使用aiohttp库发出非阻塞Web请求,还讨论了使用几种不同的异步API来同时运行这些请求。通过结合asyncioAPI和aiohttp库,可以同时运行多个耗时的Web请求,从而提高应用程序的运行速度。但我们上一章学到的概念不仅适用于Web请求,也适用于运行SOL查......