位置: IT常识 - 正文
推荐整理分享vue中使用elementUI使用el-tabs,切换Tab如何实现实时加载,以及el-table表格使用总结(vue中使用v-for指令时 为什么要加 key解释正确的是),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:vue element,vue element,vue中使用nodejs,vue中使用jquery的必要,vue中使用swiper插件实例,vue中使用require报错,vue中使用swiper插件实例,vue中使用video标签视频播放,内容如对您有帮助,希望把文章链接给更多的朋友!
当我们在开发中遇到tab切换,这时候用el的el-tabs感觉很方便
但当我在把代码都写完后,发现一个问题就是页面打开时
虽然我们只能看见当前一个tab页,但是vue会帮你把你写的所有tab页的内容都渲染出来了,只是其他的隐藏了,同时其他tab的js也都走了一边,当你点击tab时js就不会再去请求后台
这种机制会造成一个问题,就是如果每个tab页的数据都过大的时候,可能就会导致首次打开页面卡顿现象,同时如果数据库数据在实时发生变化的话,比如你一分钟前打开的这个页面,看的是tab1的内容,看了1分钟后我想看tab2的内容,但此时tab2的内容后台数据库已经发生变化了,你能看到的只是1分钟前的数据,那该怎么解决这个问题呢?
首先一开始一次加载所有tab的代码是这样的↓
<el-tabs v-model="activeName" @tab-click="handleClick" type="border-card"><el-tab-pane label="待处理" name="first"><processed/> <!--这里是自定义的子模块,也就是自定义组件--></el-tab-pane><el-tab-pane label="已处理" name="second"><un-processed/></el-tab-pane></el-tabs>这时候v-if的作用就可以发挥出来了,当v-if的值为false时vue是不会去渲染该标签下的内容的
那我们就把tabs下的子模块标签上加v-if,一开始只设置其中一个为true其他都为false,当点击tab切换时去改变v-if的值,代码如下↓
<el-tabs v-model="activeName" @tab-click="handleClick" type="border-card"><el-tab-pane label="待处理" name="first" :key="'first'"><processed v-if="isFirst"/></el-tab-pane><el-tab-pane label="已处理" name="second" :key="'second'"><un-processed v-if="isSecond"/></el-tab-pane></el-tabs>js代码如下:
<script>import Breadcrumb from '@/components/Breadcrumb'import Processed from './processed'import UnProcessed from './unprocessed'export default {components: {Breadcrumb,Processed,UnProcessed},data() {return {// 默认第一个TabactiveName: 'first',isFirst: true,isSecond: false}},methods: {handleClick(tab) {if (tab.name === 'first') {this.isFirst = truethis.isSecond = false} else if (tab.name === 'second') {this.isFirst = falsethis.isSecond = true}}}}</script>这样就可以完美解决上面的问题,首次加载页面只会渲染其中一个tab的内容,同时点击tab切换时页面重新渲染页面,good!
---------------------------------------------------------------------------------------
el-table中动态表头的写法
其实就是一个v-for循环,根据后台返回数据生成对应表头
<el-table-column v-for="item intableHeader":key="item.key":prop="item.key":label="item.name":formatter="item.formatter"align="center"show-overflow-tooltip></el-table-column>js里的数据绑定:
tableHeader: [{name: '手机号码',key: 'partnerPhone'},{name: '姓名',key: 'partnerName'},{name: '职位',key: 'position',formatter: this.posFormatter},{name: '团队',key: 'teamName'},{name: '代理商',key: 'agentName'},{name: '状态',key: 'state',formatter: this.stFormatter}]记录 转载此:https://www.cnblogs.com/tingshengshiyu/p/14378049.html?ivk_sa=1024320u
上一篇:VS Code报错:无法将“xxx”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。(vs code no such file or directory)
下一篇:Win7旗舰版系统下设置IE浏览器的安全级别的方法(win7旗舰版系统怎么样)
友情链接: 武汉网站建设