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

  • 华为音乐vip自动续费怎么取消(华为音乐vip自动续费为什么取消不了)

    华为音乐vip自动续费怎么取消(华为音乐vip自动续费为什么取消不了)

  • 支付宝可以删除账单记录吗(支付宝可以删除账单吗)

    支付宝可以删除账单记录吗(支付宝可以删除账单吗)

  • 苹果13左侧的三个按键分别是什么(苹果13左侧小按键是干嘛的)

    苹果13左侧的三个按键分别是什么(苹果13左侧小按键是干嘛的)

  • 苹果手机电话本怎么导入新手机(苹果手机电话本怎么导入华为手机)

    苹果手机电话本怎么导入新手机(苹果手机电话本怎么导入华为手机)

  • 苹果se2有3dtouch功能的吗(苹果SE2有没有NFC)

    苹果se2有3dtouch功能的吗(苹果SE2有没有NFC)

  • 打印机首选项全是英文(打印机首选项全是问号)

    打印机首选项全是英文(打印机首选项全是问号)

  • 视频导入pr后音画不同步(视频导入pr后音频变小)

    视频导入pr后音画不同步(视频导入pr后音频变小)

  • 朋友圈图片删了怎么恢复(朋友圈图片删了别人能看到吗)

    朋友圈图片删了怎么恢复(朋友圈图片删了别人能看到吗)

  • iphone相机镜面怎么关(iphone 相机 镜面)

    iphone相机镜面怎么关(iphone 相机 镜面)

  • 拼多多为什么不显示猫(拼多多为什么不能用微信支付)

    拼多多为什么不显示猫(拼多多为什么不能用微信支付)

  • 1.2v镍氢电池充电电压是多少(1.2v镍氢电池充电器电路图)

    1.2v镍氢电池充电电压是多少(1.2v镍氢电池充电器电路图)

  • 华为手机有多少配件是国产的(华为手机有多少克)

    华为手机有多少配件是国产的(华为手机有多少克)

  • 剪映导出的视频模糊(剪映导出的视频是mp4格式吗)

    剪映导出的视频模糊(剪映导出的视频是mp4格式吗)

  • 3D打印技术还可被称作为(3D打印技术还可以给人类的生活带来哪些惊喜)

    3D打印技术还可被称作为(3D打印技术还可以给人类的生活带来哪些惊喜)

  • iphone几可以无线充电(苹果手机怎么连接无线网)

    iphone几可以无线充电(苹果手机怎么连接无线网)

  • windows7有哪些特点(windows7的特点包括)

    windows7有哪些特点(windows7的特点包括)

  • 纯净人声acg音效是什么(纯净人声效果怎么制作)

    纯净人声acg音效是什么(纯净人声效果怎么制作)

  • iphonese可以升级ios13(iphonese可以升级iOS15mr)

    iphonese可以升级ios13(iphonese可以升级iOS15mr)

  • 注销抖音账号作品还在吗(注销抖音账号作者保证金怎么处理)

    注销抖音账号作品还在吗(注销抖音账号作者保证金怎么处理)

  • 反打镜头的作用(反打镜头的作用及意义)

    反打镜头的作用(反打镜头的作用及意义)

  • 扣扣闪照销毁了怎么看(qq闪照销毁了)

    扣扣闪照销毁了怎么看(qq闪照销毁了)

  • 电脑长时间不动黑屏怎么取消(电脑长时间不动就黑屏怎么办)

    电脑长时间不动黑屏怎么取消(电脑长时间不动就黑屏怎么办)

  • 怎么举报网站(怎么举报网站涉黄匿名)

    怎么举报网站(怎么举报网站涉黄匿名)

  • 华为lldal30是什么型号(华为lld—al30是什么型号)

    华为lldal30是什么型号(华为lld—al30是什么型号)

  • 对于excel数据库排序是按照什么进行的(对于yggl数据库,表employees的employeeid)

    对于excel数据库排序是按照什么进行的(对于yggl数据库,表employees的employeeid)

  • 小规模纳税人增值税可以抵扣吗
  • 个税必须每个人交吗
  • 在建工程应交税费会计分录
  • 应付账款对方不催款怎么办
  • 申报个税的收入是什么收入
  • 发票丢失怎么做分录
  • 股息红利纳税地点
  • 个体工商户生产经营所得税率
  • 电子产品委外加工
  • 飞机票改签费用怎么算1000块
  • 暂估入库已结转怎么处理
  • 预付卡充值可以退吗
  • 机构账户炒股是卖出后缴税么
  • 分配利润和分配股利
  • 材料未验收入库属于哪个科目
  • 应交增值税账面数
  • 如何能减免个人所得税
  • 企业接受固定资产投资
  • 招聘签合同
  • 交防伪税控技术怎么交
  • 奖金个人所得税筹划
  • 航天金税盘费用怎么做账
  • 金蝶增加银行存款账户,期间不对
  • 记账凭证应交税费应交增值税怎么写
  • 纳税评估调整
  • 增值税进项税怎么算
  • 运输公司造成的损耗
  • 以租代购如何做账
  • 工程结算如何做账
  • mac 移动硬盘 文件系统
  • 暂估成本跨年怎么处理分录
  • 系统之家哪个系统比较好用
  • 如何修复面部毛孔粗大
  • 事业单位专项资金包括哪些内容
  • pniopcac.exe是什么进程
  • php替换字符串中的某个字符
  • h5调用海康摄像头
  • 驼鹿穿过莫兰山了吗
  • 上传图片照片
  • php 截断
  • token的用处
  • 解决跨域问题的注解
  • php发送邮箱
  • 图书管理系统的软件结构图
  • php 遍历树
  • 前端已死?金三银四?你收到offer了吗?
  • php路径问题
  • 存货盘亏计入什么收入
  • Windows下Postgresql下载与配置方法
  • 出售固定资产不能作为企业的收入
  • 发票系统技术维护费
  • 合同负债 案例
  • 超市返利账务处理
  • 现金抵用券使用说明怎么写
  • 计提印花税会计分录怎么写
  • 企业代扣的个人所得税款收入属于哪个会计科目
  • 投资性房地产在建
  • 销售返利的会计处理方法
  • 税控盘和金税盘可以安装在一个电脑
  • 负数发票跨月怎么作废
  • 企业成本结转分录
  • 会计帐本分为哪几类
  • mysql 存过
  • winxp升级win7失败怎么办
  • dotnetfx35有什么用
  • 怎么修改抖音号
  • paytime.exe - paytime是什么进程 有什么用
  • win7怎么查看电脑主板型号
  • Extjs Ext.MessageBox.confirm 确认对话框详解
  • windows升级node版本
  • android导入别人的程序报错
  • 爱家保障行动
  • 网页使用的字体中最具可读性.最易浏览的是
  • 服务器自动关机什么原因
  • jquery 弹出页面
  • javascript+
  • 如何下载建设工程消防验收备案表格下载
  • 怎么屏蔽微信群消息,但是不退出此群
  • 湖南省税局
  • 财税65号第一条
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设