这是父组件
<ul>
<sidebar-item v-for="(menuItem,index) in sideList"
:item="menuItem"
:index="index"
></sidebar-item>
</ul>
这是item子组件
<template>
<li class="ti-25">
<div v-if="index==0?open=false:open=true">
<a href="javascript:;" @click="showBtn" class="side-title bor mt-1">
<i class="icon-open"></i>
{{item.menuName}}
</a>
<ol v-show="open">
<li class="active">
<router-link :class="[index==0?'button':'button2']" v-for="(itemChildren,index) in item.children"
class="child-title" :to="'/'+itemChildren.path">
<i class="icon-spot"></i>
{{itemChildren.menuName}}
</router-link>
</li>
</ol>
</div>
</li>
</template>
//js
return {
open:false,
}
},
props:{
item:Object,
index:Number,
},
components: {},
methods: {
showBtn(){
this.open=!this.open;
}
},
直接用
v-show
判断是否打开:JS
另外你的
router-link
中的index
和传入的属性index
重名,会在v-for
循环覆盖掉属性index
的,我已经改成了childIndex
。