vue计算属性控制显示数据的数量以及展开与收起

Posted ygtq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue计算属性控制显示数据的数量以及展开与收起相关的知识,希望对你有一定的参考价值。

  安装vue的步骤在这里就不进行赘述了,下面直接进入正题

  首先定义一下data里面的数据:

data () {
    return {
      toLearnList:[
        \'html\',\'css\',\'javascript\',\'java\',\'php\'   //进行显示的数据
      ],
      showAll:false,                  //标记数据是否需要完全显示的属性
    }
  }

  使用computed对data进行处理:

computed:{
    showList:function(){
      if(this.showAll == false){                    //当数据不需要完全显示的时候
        var showList = [];                //定义一个空数组
        if(this.toLearnList.length > 3){       //这里我们先显示前三个
          for(var i=0;i<3;i++){
            showList.push(this.toLearnList[i])
          }
        }else{
          showList = this.toLearnList
        }
        return showList;                 //返回当前数组
      }else{
        return this.toLearnList;
      }
    },
    word:function(){
      if(this.showAll == false){           //对文字进行处理
        return \'展开全部\'
      }else{
        return \'收起\'
      }
    }
  }

  template:循环的时候直接用showList进行操作,显示收起的事件直接用showAll = !showAll 进行控制,改变这个值的真假

<template>
  <div class="hello">
      <div v-for=\'item in showList\'>{{item}}</div>
      <div @click="showAll = !showAll" class="show-more">{{word}}</div>
  </div>
</template>

  css: (凑合着来)

 

  最终效果(请忽略我这难看的样式):

  点击前:

  

  点击后:

 

以上是关于vue计算属性控制显示数据的数量以及展开与收起的主要内容,如果未能解决你的问题,请参考以下文章

APP前端请求后台时,“展开与收起”交互中渐进使用动画

HTML中列表收起与展开

iOS-文本内容展开/收起实现方案

Table列展开与收起Demo

JavaScript内容的展开/收起

JavaScript内容的展开/收起