el-button 切换导致的内容数据展示错误

列表需要展示的字段有部分不同,直接用v-if添加到表格列上,来回点击按钮切换,列表展示的顺序不对,默认展示分级管理,从第一个按钮开始往后点击,列表展示没有问题;但是从右侧按钮点击到第一个按钮,这个列表顺序会变化。

1、v-if操作的是DOM元素,控制DOM元素的节点操作,初始构建dom树的时候不会构建设置为false的元素,直到使用的时候再构建

2.v-show控制css的display:none,v-show脱离文档流的元素不会导致页面发生回流和重绘

3. v-show 在页面初始化时就完成了完整的渲染,值的改变不会对页面的加载造成影响

4. v-if 在表达式返回值切换时,会摧毁组件重新渲染,相当于需要重走一遍生命周期,所以会影响页面的加载速度,造成更大的资源消耗

切换时误以为是同一个DOM元素,页面上展示不正确

解决方法:

给每个el-table-column 增加不同的标识key区分

<template> </div> <el-table :data=“tableData” border style=“width: 100%” class=“el-table”> <el-table-column fixed prop=“date” label=“日期” width=“150”> </el-table-column> <el-table-column prop=“name” label=“姓名” width=“120”> </el-table-column> <el-table-column prop=“province” label=“省份” width=“120”> </el-table-column> <el-table-column prop=“city” label=“市区” width=“120”> </el-table-column> <el-table-column prop=“address” label=“地址” width=“300”> </el-table-column> <el-table-column prop=“zip” label=“邮编” width=“120”> </el-table-column> <el-table-column fixed=“right” label=“操作” width=“100”> <template slot-scope=“scope”> <el-button @click=“handleClick(scope.row)” type=“text” size=“small”>查看</el-button> <el-button type=“text” size=“small”>编辑</el-button> </template> </el-table-column> </el-table> </div> </template> <script> export default { data() { return { searchKeyword: ‘’,// 搜索关键词 tableData: [{ date: ‘2016-05-02’, name: ‘王小虎’, province: ‘上海’, city: ‘普陀区’, address: ‘上海市普陀区金沙江路 1518 弄’, zip: 200333 }, { date: ‘2016-05-04’, name: ‘王小虎’, province: ‘上海’, city: ‘普陀区’, address: ‘上海市普陀区金沙江路 1517 弄’, zip: 200333 }, { date: ‘2016-05-01’, name: ‘王小虎’, province: ‘上海’, city: ‘普陀区’, address: ‘上海市普陀区金沙江路 1519 弄’, zip: 200333 }, { date: ‘2016-05-03’, name: ‘王小虎’, province: ‘上海’, city: ‘普陀区’, address: ‘上海市普陀区金沙江路 1516 弄’, zip: 200333 }] } }, methods: { handleSearch() { // 执行搜索逻辑 console.log(‘搜索内容:’, this.searchKeyword); // 实际开发中这里调用接口,传递 searchKeyword 进行数据查询 }, handleClick(row) { console.log(row); } } }; </script> <style scoped lang=“scss”> } //底部背景 .el-table { background: transparent !important; color: white; } //表头背景 ::v-deep .el-table th{ background: #245c8d !important ; height: 10px !important; } //行内背景 ::v-deep .el-table tr{ background: #245c8d !important ; height: 10px !important; } //表头字体颜色 ::v-deep .el-table thead{ color: white; } ::v-depp .el-table td,building-top .el-table th.is-leaf{ border-bottom: 2px solid #2C82BE !important; } // ::v-deep .el-table–enable-row-hover .el-table__body tr:hover>td{ // background-color: #245c8d !important; // } /* 修改鼠标悬浮效果 / .el-table tbody tr:hover > td { background-color: #000000 !important; / 新的高亮颜色 / cursor: pointer; / 更改光标形状 */ } </style>边框颜色,高度宽度、hover样式修改了但是无变化
03-26
vue2中el-popover失效,刷新页面后正常显示,el-popover在子组件中,子组件中部分代码:<p v-if="!userName"> <el-popover placement="bottom-start" trigger="hover"> <div class="nav-game"> <ul> <li><el-button class="nav-avatar" type="primary" @click="gotoLogin()">登录</el-button></li> <li><el-link class="nav-avatar" type="primary" @click="gotoRegister()">用户注册</el-link></li> </ul> </div> <el-avatar slot="reference" size="medium" icon='el-icon-user-solid' src="https://i0.hdslb.com/bfs/face/9e684120bdf30f9c7130de8b3f3b004e589f46ef.jpg@96w_96h_1c.webp" ></el-avatar> </el-popover> </p> <p v-else> <el-popover placement="bottom-start" trigger="hover"> <div class="nav-game"> <ul> <li class="nav-a-text"> 用户名:{{ userInfo.name }} </li> <li class="nav-a-text"> id:{{ userInfo.u_id }} </li> <li> <el-menu :default-active="activeIndex" class="el-menu-demo nav-a-item" mode="horizontal" @select="handleSelect"> <el-menu-item index="1" style="border-bottom:none;"> <h3 class="nav-a-num">{{ userInfo.like_num }}</h3> <p class="nav-a-word">点赞</p> </el-menu-item> <el-menu-item index="2"> <h3 class="nav-a-num">{{ userInfo.fans_num }}</h3> <p class="nav-a-word">粉丝</p> </el-menu-item> <el-menu-item index="3"> <h3 class="nav-a-num">{{ userInfo.issue_num }}</h3> <p class="nav-a-word">作品</p> </el-menu-item> </el-menu> </li> <li> <el-menu class="el-menu-vertical-demo" :router="true" style="margin-top: 20px; border-right: none;"> <el-menu-item index="/center"> <i class="el-icon-user" style="color: blue"></i> <span slot="title" class="nav-a-affair">个人中心</span> </el-menu-item> <el-menu-item index="/center"> <i class="el-icon-tickets" style="color: blue"></i> <span slot="title" class="nav-a-affair">稿件中心</span> </el-menu-item> <div style="width: 100%;height: 2px;background-color: gray;"></div> <el-menu-item index="" @click="logout()"> <i class="el-icon-close" style="color: blue"></i> <span slot="title" class="nav-a-affair">退出登入</span> </el-menu-item> </el-menu> </li> </ul> </div> <div slot="reference"> <Avatar :asize="40"></Avatar> </div> </el-popover>
03-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值