vue模板组件递归

<template>
  <div class="ReplyChild">
    <div v-for="(item, key) in Data" :key="key">
      <ForeignUser :UID="item.CUID">
        <teplate slot-scope="s">
        //递归出口
          <div v-if="item.PCID == Cid" @click="childMethod(item.CID, s.Nick)">
            <div>
              <span>
                {{ s.Nick }}
                <span
                  >回复<span v-for="(v1, k1) in Data" :key="k1">
                    <span v-if="v1.CID == item.PCID">
                      <ForeignUser :UID="v1.CUID">
                        <teplate slot-scope="s">
                          {{ s.Nick }}
                        </teplate>
                      </ForeignUser>
                    </span></span
                  ></span
                > </span
              >:{{ item.Desc }}
            </div>
            //递归 如果Cid存在继续渲染模板
            <div v-if="Cid">
              <ReplyChild :cid="item.CID" :Data="Data" />
            </div>
          </div>
        </teplate>
      </ForeignUser>
    </div>
  </div>
</template>
<script lang="ts">
import { Component, Vue, Prop } from "vue-property-decorator";
@Component({})
export default class ReplyChild extends Vue {
  @Prop() private Data!: any;
  @Prop() private Cid!: any;
  childMethod(e: any, nick: any) {
    this.$emit("fath", [e, nick]);
  }
}
</script>

<style scoped lang="less"></style>

调用

<div v-for="(item, key) in Commonts.L" :key="key">
  <div class="reply" v-if="item.PCID == i.CID">
    <div class="reply-main">
      <ReplyChild
        :Data="Commonts.L"
        :Cid="i.CID"
        @fath="reply($event[0], $event[1])"
      />
    </div>
  </div>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值