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: (凑合着来)


image.png

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


image.png

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

推荐阅读更多精彩内容