el-tab页签懒加载

开始设置:lazy="true",第一次都是正常的
1
看似没有问题,但是再整个数据刷新的时候,之前选中页面的内容却不会更新

<el-tabs tab-position="left" class="dayunTabs">
                    <el-tab-pane v-for="(dayun,index) in zpPan.daYuns" :key="index" class="dayun-tab-pane" :lazy="true">
                        <template #label>
                            <div>{{ dayun.dayunStr }}</div>
                            <div>({{ dayun.startAge }}~{{ dayun.endAge }}岁)</div>
                        </template>
                        <el-scrollbar class="sj-box">
                            <div class="part">
                                <header>大运</header>
                                <dayun-item :bazi="zpsj.bazi" :sex="condForm.sex" :dayun="dayun.dayunStr"></dayun-item>
                            </div>
                            <div class="part">
                                <header>流年</header>
                                <el-collapse>
                                    <liunian-panel v-for="(liunian,index) in dayun.liuNians" :key="index" 
                                        :liunian="liunian.liunianStr" :year="liunian.year" :sex="condForm.sex" :bazi="zpsj.bazi"
                                        :dayun="dayun.dayunStr">
                                    </liunian-panel>
                                </el-collapse>
                            </div>
                        </el-scrollbar>
                    </el-tab-pane>
                </el-tabs>

如果在开发调试的时候,更是麻烦,因为后台一改动不需要重新自动编译,前台还是没有变过来,开发效率太低。这个时候先不要着急自己想一套什么好的办法,先去网上搜索资料,进行对比,然后选择自己喜欢的方式。
vue elementui el-tabs切换tab重新加载
VUE+Element-ui实战之el-tabs切换实时加载el-table表格数据
借鉴了上面两个,但不完全一样,给页签的名称增加了一个事件,同时利用了v-if,只要页签点击切换,数据发生变化,内部的组件就会自动改变数据

<el-tabs tab-position="left" class="dayunTabs" @tab-click="clickDayunTabs" v-model="activeDayun">
                    <el-tab-pane v-for="(dayun,index) in zpPan.daYuns" :key="index" class="dayun-tab-pane" :lazy="true" :name="dayun.dayunStr">
                        <template #label>
                            <div>{{ dayun.dayunStr }}</div>
                            <div>({{ dayun.startAge }}~{{ dayun.endAge }}岁)</div>
                        </template>
                        <el-scrollbar class="sj-box" v-if="activeDayun==dayun.dayunStr">
                            <div class="part">
                                <header>大运</header>
                                <dayun-item :bazi="zpsj.bazi" :sex="condForm.sex" :dayun="dayun.dayunStr"></dayun-item>
                            </div>
                            <div class="part">
                                <header>流年</header>
                                <el-collapse>
                                    <liunian-panel v-for="(liunian,index) in dayun.liuNians" :key="index" 
                                        :liunian="liunian.liunianStr" :year="liunian.year" :sex="condForm.sex" :bazi="zpsj.bazi"
                                        :dayun="dayun.dayunStr">
                                    </liunian-panel>
                                </el-collapse>
                            </div>
                        </el-scrollbar>
                    </el-tab-pane>
                </el-tabs>
               
import type { TabsPaneContext } from 'element-plus'
const clickDayunTabs = (tab: TabsPaneContext, event: Event) => {
    // 切换大运页签
    activeDayun.value = tab.props.name;
}               
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warrah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值