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

  • 抖音微信登录授权失败(抖音微信登录授权在哪里设置)

    抖音微信登录授权失败(抖音微信登录授权在哪里设置)

  • 苹果重要地点要不要关(苹果重要地点要更新吗)

    苹果重要地点要不要关(苹果重要地点要更新吗)

  • iphone怎么查通话历史记录(iPhone怎么查通话记录)

    iphone怎么查通话历史记录(iPhone怎么查通话记录)

  • vivo手机充电保护怎么关闭(vivo手机充电保护在哪里)

    vivo手机充电保护怎么关闭(vivo手机充电保护在哪里)

  • 抖音如何隐藏自己的视频(抖音如何隐藏自己的在线状态)

    抖音如何隐藏自己的视频(抖音如何隐藏自己的在线状态)

  • 手机双清是清哪些数据(手机双清是什么)

    手机双清是清哪些数据(手机双清是什么)

  • 笔记本增加内存条好处(笔记本增加内存条有什么用)

    笔记本增加内存条好处(笔记本增加内存条有什么用)

  • 荣耀30支持无线快充吗(荣耀30支持无线传声吗)

    荣耀30支持无线快充吗(荣耀30支持无线传声吗)

  • 电脑没有声卡能有声音出来吗(电脑没有声卡能直播吗)

    电脑没有声卡能有声音出来吗(电脑没有声卡能直播吗)

  • xsmax官网怎么下架了(xsmax如何下载app)

    xsmax官网怎么下架了(xsmax如何下载app)

  • mate20pro人脸无法录入(华为mate20pro人脸录入不了)

    mate20pro人脸无法录入(华为mate20pro人脸录入不了)

  • 电脑microsoft是什么(microsoft指什么)

    电脑microsoft是什么(microsoft指什么)

  • 为什么qq上传文件显示安全未通过(为什么qq上传文件找不到文件)

    为什么qq上传文件显示安全未通过(为什么qq上传文件找不到文件)

  • cpu带h什么意思(cpu后缀字母h)

    cpu带h什么意思(cpu后缀字母h)

  • 主机可以连接笔记本电脑吗(主机连接笔记本显示器怎么设置)

    主机可以连接笔记本电脑吗(主机连接笔记本显示器怎么设置)

  • 怎么减小照片大小kb(怎么减小照片大小kb画质不变)

    怎么减小照片大小kb(怎么减小照片大小kb画质不变)

  • 苹果11无线充电怎么充(苹果11无线充电范围多大)

    苹果11无线充电怎么充(苹果11无线充电范围多大)

  • 网上补手机卡怎么办理(网上补手机卡怎么查进度)

    网上补手机卡怎么办理(网上补手机卡怎么查进度)

  • 快手搜昵称搜不到用户(快手搜索昵称搜不到)

    快手搜昵称搜不到用户(快手搜索昵称搜不到)

  • ipad怎么控制孩子使用时间(ipad怎么控制孩子使用游戏)

    ipad怎么控制孩子使用时间(ipad怎么控制孩子使用游戏)

  • 怎么把自己的头p到别人身上(怎么把自己的头像换到电影里)

    怎么把自己的头p到别人身上(怎么把自己的头像换到电影里)

  • 电脑怎么用手机网络(电脑怎么用手机热点上网)

    电脑怎么用手机网络(电脑怎么用手机热点上网)

  • 魅族16s电池容量(魅族16s电池容量多少)

    魅族16s电池容量(魅族16s电池容量多少)

  • 三摄和双摄区别(三摄比双摄好在哪里)

    三摄和双摄区别(三摄比双摄好在哪里)

  • DxDebugService.exe是什么进程 DxDebugService进程安全吗

    DxDebugService.exe是什么进程 DxDebugService进程安全吗

  • 什么时候公司需要赔偿员工
  • 建筑发票开具与土增税扣有什么关系?
  • 税后净营业利润和净利润的区别
  • 外籍人员税收优惠政策
  • 购进货物支付的运输费用如何计算增值税
  • 网吧是否征收文物保护费
  • 在项目地预缴税款有哪些税种
  • 城镇土地使用税纳税义务发生时间
  • 2019年小型微利企业优惠政策
  • 短期借款可以按币种设置明细核算
  • 已入账未抵扣退回发票
  • 应税服务零税率是什么
  • 金税三期中个税怎么算
  • 受托方提供材料怎么写
  • 腾讯计算机系统扣费15元怎么查
  • 全国增值税发票查询平台 手机版
  • 挂账的费用怎么填制单据凭证
  • 公司没有进出口权 如何进行业务
  • 预计负债什么时候确认
  • 建厂房的费用怎么记账
  • 国家统计局一套表平台网址
  • linux的用法
  • php调用sql
  • 存货周转材料报废处理会计分录
  • 计提折旧和计提减值
  • php_fileinfo作用
  • 工业企业采购部工作职责
  • php开发实战权威指南
  • php验证码识别
  • 计提资产减值准备是利好还是利空
  • 编译原理第三版课后答案
  • gridview功能
  • 技术部周报怎么写
  • hostnamectl命令可以永久修改主机名
  • 详解Yii2 rules 的验证规则
  • 跨平台 gui
  • 注销营业执照的电话号码是多少
  • 展览费应在在管理费里吗
  • 微信收款怎么记录怎么删除
  • 6月发5月工资怎么做账
  • 跨境电商小规模运营负责那些工作
  • 退回发票金额是什么意思
  • python装饰器如何保留原函数信息
  • 应收账款计提坏账准备是什么意思
  • 材料短缺计入成本吗
  • 生产性资金性质
  • access参数查询怎么弄
  • 预收账款的核算处理
  • 应交税费减免税款怎么结转
  • 收到银行承兑汇票后,如何取钱
  • 厂商租赁公司
  • 非正常损失进项税额转出怎么计算
  • 存货毁损损失应计入的科目是
  • 09年前的固定资产
  • 忘记报关可以补报吗
  • 预付账款为什么不是金融资产
  • 应收账款较多怎么办
  • 动产不动产租赁增值税税率
  • mysql precision
  • sqlserver 临时表 准备
  • mysqlgroupby用法解析详细
  • 微软出win9了吗
  • 检测电脑屏幕
  • windows7开始菜单
  • css如何设置div位置
  • html用法
  • js操作dom节点的方法
  • linux命令及含义
  • python复制文件内容
  • vue中使用jsx
  • javascript教程完整版
  • cypress 异步
  • python调用python代码
  • android 界面切换
  • 辽宁省社保系统操作
  • 江西电子税局
  • 佛山市地税局办公室主任
  • 主管税务机关指的是
  • 出租房地面铺什么
  • 工会经费支出审批制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设