vue-数据列表筛选

Posted suitongyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-数据列表筛选相关的知识,希望对你有一定的参考价值。

<template>
  <div>
    <input type="text" v-model="search">
    <ul>
      <!-- 注意!注意!注意!这里循环遍历的是items,不再是data里的list数组 -->
      <li v-for="(item,index) in items">
        <span>{{item.name}}</span>
        <span>{{item.msg}}</span>
        <span>{{item.age}}</span>
        <span>{{item.title}}</span>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "DataForm", 
  data() {
    return {
      search:‘‘,
      list:[
        {id:0,name:‘AAA‘,msg:‘aaa文本介绍1‘,title:‘水电费‘,age:366},
        {id:1,name:‘BBB‘,msg:‘bbb文本介绍2‘,title:‘赵子龙‘,age:235},
        {id:2,name:‘CCC‘,msg:‘ccc文本介绍3‘,title:‘赵性‘,age:587},
        {id:3,name:‘DDD‘,msg:‘ddd文本介绍4‘,title:‘展飞‘,age:654},
        {id:4,name:‘EEE‘,msg:‘eee文本介绍5‘,title:‘收费‘,age:987},
        {id:5,name:‘FFF‘,msg:‘Aa文本介绍6‘,title:‘收费‘,age:6985},
      ]
    };
  },
  computed:{
    // 筛选指定字段
    items:function(){
      let _search = this.search;
      let reg = new RegExp(_search, ‘ig‘);// 不区分大小写
      if(_search){
        return this.list.filter(function(item){
          if((item.id.toString().indexOf(_search) != -1) || item.msg.match(reg) || (item.age.toString().indexOf(_search) != -1)){
            return item;
          }
        });
      }
      return this.list;
    },
    // 筛选所有的字段
    itemss: function() {
      var _search = this.search;
      console.log(_search);
      if(_search){
        // 不区分大小写处理
        var reg = new RegExp(_search, ‘ig‘)
        // es6 filter过滤匹配,有则返回当前,无则返回所有
        return this.list.filter(function(e) {
          // 匹配所有字段
          return Object.keys(e).some(function(key) {
            return e[key].match(reg);
          })
          // 匹配某个字段
          // return e.name.match(reg);
        })
      };
      return this.list;
    }
  }
};
</script>

 

以上是关于vue-数据列表筛选的主要内容,如果未能解决你的问题,请参考以下文章

细聊Vue列表中的那些事——数据排序

vue3保存筛选条件

分享几个简单的技巧让你的 vue.js 代码更优雅

几个你所不知道的技巧助你写出更优雅的vue.js代码

vuejs 下拉列表怎样默认选中

vue2购物车ch4-(筛选v-for 点击的那个设置样式 设为默认地址其他 联动 非循环的列表选中和非选中 删除当前选中的列表)