VUE包含多个router-view解决办法

如果一个页面有多个router-view,加载时会重复加载接口。解决这个问题,可使用以下方式:

1,将router-view加入name属性。

<el-container >
  <el-tabs type="border-card" style="width: 99%;height: 99%"  @tab-click="handleClick">
    <el-tab-pane label="统计1">
      <router-view name="statistics1"></router-view>
    </el-tab-pane>
    <el-tab-pane label="统计2">
      <router-view name="statistics2"></router-view>
    </el-tab-pane>
    <el-tab-pane label="统计3">
      <router-view name="statistics3"></router-view>
    </el-tab-pane>
    <el-tab-pane label="统计4">
      <router-view name="statistics4"></router-view>
    </el-tab-pane>
  </el-tabs>
</el-container>

2,路由规则里面加入 components,使router-view加入name属性与页面对应。

{
	name:'statistics',
	path:'/rpa/statistics',
	component:StatisticsLayout,
	redirect: '/rpa/statistics/statisticsData1',
	children:[
		{
			name:'statisticsData1',
			path:'statisticsData1',
			components: {statistics1:() => import('@/view/portal/process/StatisticsData1.vue')},
			meta:{
				title:'统计1'
			},
		},{
			name:'statisticsData2',
			path:'statisticsData2',
			components: {statistics2:() => import('@/view/portal/process/StatisticsData2.vue')},
			meta:{
				title:'统计2'
			},
		},{
			name:'statisticsData3',
			path:'statisticsData3',
			components: {statistics3:() => import('@/view/portal/process/StatisticsData3.vue')},
			meta:{
				title:'统计3'
			},
		}, {
			name:'statisticsData4',
			path:'statisticsData4',
			components: {statistics4:() => import('@/view/portal/process/StatisticsData4.vue')},
			meta:{
				title:'统计4'
			},
		}
	]
},

3,将JS点击事件对应到路由规则的name属性

  methods:{
    handleClick(tab, event) {
      if(tab.index == '0'){
        this.$router.push({name:'statisticsData1'});
      } else if(tab.index == '1'){
        this.$router.push({name:'statisticsData2'});
      }else if(tab.index == '2'){
        this.$router.push({name:'statisticsData3'});
      }else if(tab.index == '3'){
        this.$router.push({name:'statisticsData4'});
      }
    }
  },

这样,每次tab切换加载页面时,只加载对应页面的接口。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值