位置: IT常识 - 正文

Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新(vue3.0 element ui)

编辑:rootadmin
Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新 Vue 3结合element plus(问题总结一)之 table数据更新而视图不更新前言Table组件问题原因及解决小案例前言

推荐整理分享Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新(vue3.0 element ui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3.0支持element,vue结合elementui,vue3.0 element,vue结合elementui,vue3+element,vue结合elementui,vue3+element,vue3+elementplus,内容如对您有帮助,希望把文章链接给更多的朋友!

应为做项目用到vue3,就结合element plus来做,但是碰到一些问题,上网搜几乎是vue2 结合element ui的相似问题。所以自己也是搞了蛮久的,如果有相同的问题希望能帮助到各位,希望可以点赞加搜藏一下。

Table组件

讲一下Table组件,先看下官网给的基础代码和效果。

<template> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="date" label="Date" width="180" /> <el-table-column prop="name" label="Name" width="180" /> <el-table-column prop="address" label="Address" /> </el-table></template><script lang="ts" setup>const tableData = [ { date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', }, { date: '2016-05-02', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', }, { date: '2016-05-04', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', }, { date: '2016-05-01', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', },]</script>Vue 3结合element plus(问题总结一)之 table数据更新而视图不跟新(vue3.0 element ui)

可以很清楚的明白其中的组件的使用。

问题原因及解决

当我更新数组绑定的tableData的时候,视图却没有更新。后面上网搜索问题,找了很多方法都不行。后来才发现犯了一个很低级的错误。错误原因

tableData不是代理对象,使用直接将新的值赋给tableData,视图不会更新后来将table定义为代理对象,还是失败的原因是数组的改变有些情况vue3响应监测不到

如何将接口请求到的列表数据赋值给响应数据 呢? 失败案例

const arr = reactive([]);const load = () => { const res = [2, 3, 4, 5];//要更新的数据 // 方法1 失败,直接赋值丢失了响应性 // arr = res; // 方法2 这样也是失败 // arr.concat(res); // 方法3 可以,但是很麻烦 res.forEach(e => { arr.push(e); });};

vue3 使用proxy,对于对象和数组都不能直接整个赋值。

成功案例

// 方案1:创建一个响应式对象,对象的属性是数组const data = reactive({ arr: []});data.arr = [1, 2, 3]// 方案2: 使用ref函数const data = ref([])data.value = [1, 2, 3]// 方案3: 使用数组的push方法const arr = reactive([])arr.push(...[1, 2, 3])小案例

通过一个小案例来验证一下。

<template > <el-button @click="updateView()">更新视图</el-button> <div id="shoplist"> <el-table ref="multipleTableRef" :data="data.arr" style="width: 100%" height="90%" stripe @selection-change="handleSelectionChange" > <el-table-column type="selection" width="40" /> <el-table-column property="shopname" label="店名" width="120" show-overflow-tooltip/> <el-table-column property="score" label="评分" sortable width="80" /> <el-table-column property="sales" label="销量" sortable width="80" /> <el-table-column property="type" label="类型" width="70" /> </el-table> </div></template><script>import { ref } from 'vue' ;import {ElTable} from 'element-plus'import { reactive } from '@vue/reactivity';export default { setup () { const multipleTableRef = ref(null); const multipleSelection = ref([]); var handleSelectionChange =(val)=>{ multipleSelection.value = val; } //刚开始没有数据 var data = reactive({ arr:[] }) //更新数据 var updateView = () =>{ data.arr = [ { id:1, shopname:"沙县小吃", score:5.5, sales:1200, hh:12, type:"快餐" }, { id:2, shopname:"法式牛排餐厅", score:7.5, sales:2400, hh:12, type:"西餐" }, { id:3, shopname:"沙县大吃", score:6.5, sales:200, hh:12, type:"快餐" }, { id:4, shopname:"南昌瓦罐汤", score:6.9, sales:2400, hh:12, type:"快餐" }, ] } return { data, updateView } },}</script><style> #shoplist{ position: fixed; z-index: 1001; width: 390px; height: 100%; min-height: 100vh; right: 0px; bottom: 0px; padding-top: 5px; background-color: #f2f2f2; transition: 1s; /* overflow: hidden; */ border: 1px solid #333; }</style>

刚开始没有数据,右侧就显示No Data,当我点击更新视图按钮时。就可以看到列表了(数据是瞎编的,不要注重细节。) 同样的第二种和第三种方式也可以。

...<el-table ref="multipleTableRef" :data="data"这里改成了data哦 style="width: 100%" height="90%" stripe @selection-change="handleSelectionChange" > ... var data = ref([]) //更新数据 var updateView = () =>{ data.value = [ ...
本文链接地址:https://www.jiuchutong.com/zhishi/283880.html 转载请保留说明!

上一篇:温尼伯湖沿岸的春日冰雪,曼尼托巴 (© Mike Grandmaison/Jaynes Gallery/DanitaDelimont.com)(温尼伯湖成因)

下一篇:高德地图API-获取位置信息的经纬度(高德地图api获取当前经纬度的城市地图)

  • 华为p40pro听筒位置在哪里

    华为p40pro听筒位置在哪里

  • 华为手机充电绿色气泡(华为手机充电绿色灯怎么关闭)

    华为手机充电绿色气泡(华为手机充电绿色灯怎么关闭)

  • 收藏的语音消息不能转发怎么办(收藏的语音消息不能转发微信)

    收藏的语音消息不能转发怎么办(收藏的语音消息不能转发微信)

  • vivo手机原装膜要不要撕了(vivo手机原装膜可以撕下来吗)

    vivo手机原装膜要不要撕了(vivo手机原装膜可以撕下来吗)

  • 小米10有光学防抖吗(小米10光学防抖怎么关闭)

    小米10有光学防抖吗(小米10光学防抖怎么关闭)

  • 支付宝上传身份证后怎样能够删除(微信身份证怎么弄)

    支付宝上传身份证后怎样能够删除(微信身份证怎么弄)

  • 电脑没法连WiFi怎么办(电脑没法连手机热点)

    电脑没法连WiFi怎么办(电脑没法连手机热点)

  • 删了再加有聊天记录吗(删除后再加回来还有之前聊天记录吧)

    删了再加有聊天记录吗(删除后再加回来还有之前聊天记录吧)

  • s6支持nfc吗(s6支持无线充吗)

    s6支持nfc吗(s6支持无线充吗)

  • mate30pro原装膜是什么膜(mate30e pro原装膜好差)

    mate30pro原装膜是什么膜(mate30e pro原装膜好差)

  • x分身软件打不开怎么办(分身应用 无法打开)

    x分身软件打不开怎么办(分身应用 无法打开)

  • 存储卡和内存卡的区别(存储卡和内存卡的区别摄像头安卡后怎么格式化)

    存储卡和内存卡的区别(存储卡和内存卡的区别摄像头安卡后怎么格式化)

  • 中央处理器由什么组成(中央处理器由什么单元组成)

    中央处理器由什么组成(中央处理器由什么单元组成)

  • dns的主要功能是什么(域名服务dns的主要功能是)

    dns的主要功能是什么(域名服务dns的主要功能是)

  • 华为手机悬浮窗怎么开(华为手机悬浮窗怎么调出来)

    华为手机悬浮窗怎么开(华为手机悬浮窗怎么调出来)

  • 微信闪图怎么发送(微信怎么看原图照片)

    微信闪图怎么发送(微信怎么看原图照片)

  • 闲鱼封号会连累淘宝吗(闲鱼封号会连累别人吗)

    闲鱼封号会连累淘宝吗(闲鱼封号会连累别人吗)

  • boss直聘如何屏蔽公司(boss直聘怎么能让别人看不到我)

    boss直聘如何屏蔽公司(boss直聘怎么能让别人看不到我)

  • win10用户头像错误怎么办(win10用户头像错误 设置用户头像失败,请再试一次)

    win10用户头像错误怎么办(win10用户头像错误 设置用户头像失败,请再试一次)

  • 海獭妈妈和新生的幼崽,加利福尼亚州蒙特雷湾 (© Suzi Eszterhas/Minden Pictures)(海獭妈妈和新生儿的故事)

    海獭妈妈和新生的幼崽,加利福尼亚州蒙特雷湾 (© Suzi Eszterhas/Minden Pictures)(海獭妈妈和新生儿的故事)

  • html 怎么设置文本对齐,文本间距,盒子居中显示(HTML怎么设置文本框)

    html 怎么设置文本对齐,文本间距,盒子居中显示(HTML怎么设置文本框)

  • [ZCU102嵌入式开发]基于Vitis-AI的yolov5目标检测模型在ZCU102开发板上的部署过程分享(嵌入式开关安装效果图)

    [ZCU102嵌入式开发]基于Vitis-AI的yolov5目标检测模型在ZCU102开发板上的部署过程分享(嵌入式开关安装效果图)

  • C++ lower_bound/upper_bound用法解析

    C++ lower_bound/upper_bound用法解析

  • 福建国税网上办税平台登录
  • 房产税如何进行税源采集
  • 公司买房子可以贷款多少
  • 退休金合并其他收入缴纳个税
  • 递延所得税负债大白话解释
  • 残疾人就业保障金会计分录怎么做
  • 退货一定要卖家同意吗
  • 简易计税36个月不能变指的是这个项目吗?
  • 员工加班餐费计入会计什么科目
  • 个人所得税减除费用6万元什么意思
  • 支付的检测费计入什么科目
  • 认证不抵扣的账务处理
  • 小微企业增值税优惠政策最新2023
  • 个人独资企业注册流程
  • 支付的保证金
  • 车间一般性耗用材料会计分录
  • 事业编人员贷款
  • 出售资产时递延所得税怎么处理
  • 企业进行股票买入的条件
  • 小企业发生销售折让的原因
  • 工业混合销售行为如何纳税?
  • 如何查询分公司开户行
  • 资管产品征税
  • 归还银行贷款怎么做分录
  • 营业收入销售收入计算公式
  • 利息收入营业收入
  • linux下xhost命令报错:unable to open display的解决办法
  • 虚增利润
  • php拼接url
  • 高新技术企业的研发费用加计扣除
  • 腾达ac9路由器怎么样
  • 生产员工福利计什么科目
  • 马纳斯古盐田气候特征
  • php socket_create
  • 产品工人工资属于制造费用吗
  • 自然人税收系统换电脑怎么同步数据
  • 小糖是谁
  • 数据挖掘期末考试大纲
  • gpt参数
  • 前端实际开发
  • 最全面的心脏检查怎么做
  • 命令行怎么管理员运行
  • linuxmd5加密
  • ps渐变透明效果怎么弄
  • 以前年度损益调整结转到本年利润吗
  • 企业之间的借款计入什么科目
  • 企业所得税申报表在哪里打印
  • 小规模纳税人的增值税账务处理
  • Packaging a Qt application
  • 织梦怎么安装
  • mongodb reference
  • 直播属于什么行业门类
  • 应收款超过多久未收回可界定为损失
  • 企业借款利息计入什么科目
  • 小规模个体工商户怎么交税
  • 增值税发票日用品开票明细
  • 营改增后增值税增加了什么征收范围
  • 创投收入
  • 行政事业单位如何开发票
  • 手机发票计入什么科目
  • 公司固定资产有很多种类,怎样计提折旧
  • sql排序分组
  • sql server如何
  • mysql5.7版本的服务的名字是
  • centos7阿里云yum源
  • Fedora Core 4.0 安装图解
  • vmware虚拟机关机快捷键
  • Solaris 10.0 cvs的安装方法
  • mac os x 10.9.5
  • igfxem是什么软件
  • win10系统打不开此电脑和文件夹
  • 怎么关闭win10系统
  • jq拖拽div替换位置
  • perl的$1
  • 可序列化的类被标记为
  • 网页编辑器手机版
  • 广东怎么交农村合作医疗保险
  • 晋江劳动局地址
  • 城市维护建设税法自2021年10月1日起施行
  • 城镇土地使用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设