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

 

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

  点击前:

  

  点击后:

 

posted @ 2017-02-13 23:36  ygtq  阅读(11157)  评论(0编辑  收藏  举报