你可以用
Portal-Vue
将阶梯槽多播到两个位置(办公桌和手机)。
isMobile
更改门户重新评估的值并将其内容移动到相应的节。
<v-stepper v-model="stepStage" :alt-labels="!isMobile" :vertical="isMobile" >
<div v-show="!isMobile">
...
<v-stepper-items>
<v-stepper-content v-for="(item,index) in steps" :key="index" :step="index+1">
<portal-target :name="`portal-desk-${index}`" :key="index" slim></portal-target>
</v-stepper-content>
</v-stepper-items>
...
</div>
<div v-show="isMobile">
<template v-for="(item,index) in steps">
...
<v-stepper-content :key="`${index}-stepContent-mobile`" :step="index+1">
<portal-target :name="`portal-mobile-${index}`" :key="index" slim></portal-target>
</v-stepper-content>
...
</template>
</div>
<template v-for="(item, index) in steps">
<portal :to="portalName(index)" :key="index">
<template :slot-scope="item.slot"><slot :name="item.slot"></slot></template>
</portal>
</template>
</v-stepper>
computed: {
portalName() {
return (index) => {
const section = this.isMobile ? 'mobile' : 'desk';
return `portal-${section}-${index}`
}
}
},
v-中频
我不知道你发现了什么问题
v-if
,但它似乎与v-if一起工作
v-stepper-content
<div v-show="!isMobile">
...
<v-stepper-content v-if="!isMobile" v-for="(item,index) in steps" :key="index" :step="index+1">
...
<div v-show="isMobile">
...
<v-stepper-content v-if="isMobile" :key="`${index}-stepContent-mobile`" :step="index+1">