位置: 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获取当前经纬度的城市地图)

  • 小米手机自动静音(小米手机自动静音设置)

    小米手机自动静音(小米手机自动静音设置)

  • 内存条插上两边扣不上(内存条插上两边不一样)

    内存条插上两边扣不上(内存条插上两边不一样)

  • 为什么内存卡放在手机里没有显示出来(为什么内存卡放在摄像机里不能用)

    为什么内存卡放在手机里没有显示出来(为什么内存卡放在摄像机里不能用)

  • qq冻结几次会永久(qq冻结多次会怎么样)

    qq冻结几次会永久(qq冻结多次会怎么样)

  • 华为p40手机防水吗(华为p40防水吗)

    华为p40手机防水吗(华为p40防水吗)

  • 计算机病毒主要是通过什么传播(计算机病毒主要通过什么途径传播)

    计算机病毒主要是通过什么传播(计算机病毒主要通过什么途径传播)

  • 手机充电没有闪电标志(手机充电没有闪充标志)

    手机充电没有闪电标志(手机充电没有闪充标志)

  • 8p什么处理器(p30什么处理器)

    8p什么处理器(p30什么处理器)

  • 小米闹钟不响(小米闹钟不响铃)

    小米闹钟不响(小米闹钟不响铃)

  • 华为手机的云空间在哪里(华为手机的云空间怎么关闭)

    华为手机的云空间在哪里(华为手机的云空间怎么关闭)

  • 手机应用商店打不开是怎么回事(手机应用商店打开是白色画面怎么办)

    手机应用商店打不开是怎么回事(手机应用商店打开是白色画面怎么办)

  • 对方关机能微信电话吗(对方关机能微信支付吗)

    对方关机能微信电话吗(对方关机能微信支付吗)

  • c语言中puts是什么意思(c语言中的puts函数的作用)

    c语言中puts是什么意思(c语言中的puts函数的作用)

  • ps滤镜怎么安装(ps滤镜怎么安装到电脑上)

    ps滤镜怎么安装(ps滤镜怎么安装到电脑上)

  • 手机上能注销电话卡吗(手机上能注销电话号码吗)

    手机上能注销电话卡吗(手机上能注销电话号码吗)

  • iPhone11pro怎么进入控制中心(iphone11pro怎么进入刷机模式)

    iPhone11pro怎么进入控制中心(iphone11pro怎么进入刷机模式)

  • 小米ai音箱怎么连接电脑(小米ai音箱怎么连接)

    小米ai音箱怎么连接电脑(小米ai音箱怎么连接)

  • 怎么把表情包尺寸缩小(怎么把表情包尺寸缩小QQ)

    怎么把表情包尺寸缩小(怎么把表情包尺寸缩小QQ)

  • 微信视频比例怎么调整(微信视频怎么设置比例)

    微信视频比例怎么调整(微信视频怎么设置比例)

  • 陌陌为什么还不能发视频(陌陌为什么还不能发状态)

    陌陌为什么还不能发视频(陌陌为什么还不能发状态)

  • 华为vcealoo是什么型号(华为vceal00)

    华为vcealoo是什么型号(华为vceal00)

  • 电脑插入U盘后蓝屏怎么办?解决方法(电脑插上u盘)

    电脑插入U盘后蓝屏怎么办?解决方法(电脑插上u盘)

  • 楷体gb2312设置教程(楷体_gb2312字体)

    楷体gb2312设置教程(楷体_gb2312字体)

  • phpcms如何判断是不是首页(php如何判断是移动还是pc)

    phpcms如何判断是不是首页(php如何判断是移动还是pc)

  • 小规模纳税人减按1%如何填报申报表
  • 小规模纳税人的账务处理
  • 经营租赁增值税税率3%
  • 工地工贸药品入库流程
  • 期初存货中固定制造费用
  • 预付账款退回怎么做凭证
  • 企业如何代员工缴社保
  • 增值税免税是否计入营业外收入
  • 公司销售固定资产汽车如何填申报表
  • 现金流量表中支付的税费包括哪些
  • 递延所得税资产计算公式
  • 长期借款会计科目编码
  • 受托加工费直接计入生产成本
  • 建设单位对施工单位的管理要求
  • 周转材料租赁费怎么结转成本
  • 帮客户垫付的费用有发票如何做账科目
  • 美金公户打入个人账户
  • 改变使用用途 规划处罚
  • 工程已完工又发生了成本怎么处理
  • 总分机构账务处理
  • 累计折旧费用
  • 住房公积金管理官网
  • 收到专票有误,已跨月未认证,销售方不红冲咋办
  • 账户禁用无法登录怎么办
  • 税控盘抵减
  • 360safe删除不了怎么办
  • 研发费用的支出类型有哪些
  • 未能连接到一个windows 的服务win7
  • PHP:pcntl_strerror()的用法_PCNTL函数
  • vue for循环遍历对象取值
  • 小规模企业需要交几个点
  • php常见错误
  • vue设置背景图片透明度
  • 小微企业免征增值税政策2023
  • 斯坦福大学起源
  • Vite4+Pinia2+vue-router4+ElmentPlus搭建Vue3项目(组件、图标等按需引入)[保姆级]
  • 中华人民共和国禁毒法第十三条规定
  • 资产负债表中应收账款的计算公式
  • 退票产生的费用如何报销
  • 企业年报未报会有什么后果
  • python如何运用
  • 专项附加扣除中住房租金扣除所指的工作城市范围包括
  • 工费经费计入哪里
  • 坏账计提方法会计政策
  • 不得开具增值税专用发票是什么意思
  • 固定资产投资额是指什么
  • 中小型企业营业额和从业人数
  • 记账凭证如何进行记账
  • 国有控股企业和国有参股企业的区别
  • 职工旅游费用会计处理
  • 以原材料投入资本
  • 小规模纳税人购进税控收款机
  • 计提坏账准备需要哪些资料
  • 在建工程领用工程物资
  • windows自带截图保存在哪里
  • win10预览版21277
  • win8.1系统升级win10
  • mac开机后蓝屏没反应
  • linux的用户
  • sysscjh.exe是什么文件
  • 出现闪退该怎么办
  • centos清理缓存
  • windows 10微软
  • 升级win10系统后安装谷歌打不开
  • linux 有哪些
  • excel f9刷新
  • nodejs的require
  • css设置表格隔行换色
  • Unity3D游戏开发引擎
  • opengl编程实例
  • 网页设计div css布局
  • jq 使用
  • jQuery EasyUI Tab 选项卡问题小结
  • 每天一篇文章锻炼口才的文章
  • jquery中获取元素的三种方法
  • 医院体检怎么拿发票
  • 北京朝阳地税局电话号码
  • 统一社会信用代码证
  • 赞美税务局的话
  • 注册税务师条件要求
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设