解决element ui中tabs组件切换没有加载对应页面方法

解决element ui中tabs组件切换没有加载对应页面方法

<template>
  <div>
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tab-pane
        v-for="(item, index) in tabsArr"
        :key="index"
        :label="item.label"
        :name="item.name"
      >
        <components :is="item.name" v-if="item.name == nowName"></components>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>

<script>
import tabs1 from "../components/tabs1";
import tabs2 from "../components/tabs2";
import tabs3 from "../components/tabs3";
export default {
  components: { tabs1, tabs2, tabs3 },
  data() {
    return {
      activeName: "tabs1",
      nowName: "tabs1",
      tabsArr: [
        {
          label: "用户管理",
          name: "tabs1",
        },
        {
          label: "配置管理",
          name: "tabs2",
        },
        {
          label: "角色管理",
          name: "tabs3",
        },
      ],
    };
  },
  methods: {
    handleClick(tab) {
      this.nowName = tab.name;
    },
  },
  created() {},
};
</script>

最后总结:

element-ui中的tabs每次点击时都会给所有页面重新渲染,为的是保证当子页面存在需要实时加载的情况下能保证数据的更新。

但是当子页面过多,每次切换都会把所有页面都加载,就会占用过多的网络资源。

v-if这个方法适用于非频繁切换的场景。在当前的使用中是非常合适的。

v-if判断是否加载,可以减轻服务器的压力,在需要时加载,但有更高的切换开销;如果在运行时条件很少改变,使用 v-if 进行一个选择性渲染会比较好。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值