如何处理数组中的数组循环展示问题

要实现的效果是页面有2个可点击的按钮(NewType),点击当前的按钮(NewType)下面展示出对应的NewList中的Title。实现效果图如下:

数据格式如下:

NewData: [{
		"Id": "235917348760977408",
		"NewType": "测试新闻",
		"NewList": [{
				"Id": "235918669983514624",
				"Title": "测试数据不可为真",
			},
		]
	},
	{
		"Id": "203399992872796160",
		"NewType": "行业新闻",
		"NewList": [{
				"Id": "211284456219082752",
				"Title": "222222",
			},
			{
				"Id": "211283345504468992",
				"Title": "瞭望丨加快产业数字化智能化抢占竞争制高点",
			},
			{
				"Id": "211282111284379648",
				"Title": "喜欢冰淇淋",
			}
		]
	}
]

html代码

方法一:

 <template>
     <div>
        <div v-for="newsType in NewData" :key="newsType.Id">
          <div @click="changeTable(newsType.Id)">  {{ newsType.NewType }} </div>
          <ul>
            <li v-for="newsItem in newsType.NewList" :key="newsItem.Id" 
              v-if="newsType.Id== tableIndex">
              <div>{{ newsItem.Title }}</div>
            </li>
          </ul>
        </div>
     </div>
</template>

方法二:我这里写了样式就这样了,大家方法一。

<template>
    <div>
     <div v-for="(item, index) in NewData" @click="changeTable(item.Id)"
        :class="tableIndex == item.Id ? 'activeATable' : ''" >
          {{ item.NewType }}
      </div>
        
      <div>
        <div v-for="newsType in NewData" :key="newsType.Id">
          <ul>
            <li v-for="newsItem in newsType.NewList" :key="newsItem.Id" 
                v-if="newsType.Id== tableIndex">
              <div>{{ newsItem.Title }}</div>
            </li>
          </ul>
        </div>
      </div>
    </div>
</template>

初始化和方法

<script>
    data(){
        return{
            NewData:[],//上面的数据
            tableIndex:"0",
    },
    methods:{
        changeTable (index) = {
          this.tableIndex = index
        }
    }
}
</script>

高亮

<style lang="less" scoped>

  .activeATable {
    color: #03358E;
  }

</style>

这里样式就没写了,只有高亮留下来了,同时这里v-for和v-if一起使用了,请大家慎用。最好用v-show替换一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值