vue 递归组件

今天在做评论管理的时候在想如何去布局完成有层次嵌套的评论界面,这个时候就想到了用递归组件去完成。这是我今天实现的样式(很不好看)


使用递归组件方法布局出来的页面

使用的话很简单,只需要简单几步就能完成

1、第一步单独新建一个组件和一个树形结构的数据,一定要单独!

<template>

  <div class="big">

    <div class="content">

      <div v-for="(item,index) ofcommentList" :key="index">

        <div class="cut-off"></div>

        <!--用户名和时间-->

        <div class="name-time">

          <div class="username">{{item.username}}</div>

          <div class="time">{{item.createTime}}</div>

        </div>

        <!--评论内容-->

        <div class="comment-content">{{item.content}}</div>

        <!--点赞和回复-->

        <div class="approve-back" >

          <div class="approve">

            <img src="../../../assets/approve1.png" ref='img' class="img" @click="handlerAddApprove(item.id)">

            <div class="approve-number">赞{{item.approve}}</div>

          </div>

          <div class="back">

            <img src="../../../assets/back.png" class="img">

            <div class="text">回复</div>

          </div>

        </div>

        <div v-if="item.childCommentTreeMessage" class="div-child">

          <news-comment :commentList="item.childCommentTreeMessage"></news-comment>

        </div>

      </div>

    </div>

  </div>

</template>

最主要的代码我加粗了


使用递归组件的中药一个内容,需要给组件命名
主要逻辑代码,现判定有木有子类,如果有再调用自己的组件

重点:解释一下为什么要新建一个组件! 因为如果在这个页面写了其他内容,在自己调用自己的时候,会把其他不需要的内容重复显示,造成排版混乱!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue 递归组件 前言 对于一些有规律的 dom 结构,我们可以通过递归方式来生成这个结构,,那么在 vue 的模...
    Fate0阅读 18,702评论 1 13
  • 其实最开始并没有采用Vuex,因为Vuex相对于$emit这类事件监听需要多写很多代码,而且步骤也是比较繁琐...
    冯阳阳的博客阅读 25,657评论 6 14
  • 写在前面 首先,本篇文章所开发的组件并非一个已经开源的上线组件,所以如果你急于需要一个插件来只做你的项目,那么并不...
    冯阳阳的博客阅读 5,889评论 1 30
  • 递归组件的定义 每个组件都有一个name属性。当你注册全局组件的时候这个全局的ID会设置成这个组件的name属性 ...
    尼莫nemo阅读 873评论 0 0
  • 树形控件实现 1 .传一个数组进去,根据数组及逆行渲染数据 2 .根据数组的深度,渲染的样式来点区别,传入一个标记...
    skoll阅读 763评论 0 0