如何使用Vue实现模糊搜索实例:

<body>

  <div id="root">

    <input type="text" placeholder="请输入要查询的姓名" v-model="keyWord">

    <ul>

      <li v-for="(value,index) in filPersons" :key="value.id">

        {{value.name}}-{{value.age}}

      </li>

    </ul>

  </div>

  <script>

    Vue.config.productionTip = false;   //阻止vue在启动时生成生产提示

    new Vue({

      el: "#root",

      data: {

        keyWord: "",

        persons: [

          { id: "001", name: "马冬梅", age: 16, sex: "女" },

          { id: "002", name: "周冬雨", age: 13, sex: "女" },

          { id: "003", name: "周杰伦", age: 12, sex: "男" },

        ],

        filPersons: []

      },

      //方式一:用watch实现

      watch: {  //侦听属性

        keyWord: {

          immediate: true,  //immediatetrue,则在初始化时handler会调用一次

          handler(val) {

            this.filPersons = this.persons.filter(item => item.name.indexOf(val) !== -1)

          }

        }

      },

      // 方式二:用computed实现模糊搜索和排序 更简洁

      computed: {

        filPersons() {

          let arr= this.persons.filter(item => item.name.indexOf(this.keyWord) !== -1)

          if(this.sortType){  //只有sortType1或为2时,才为true

             arr.sort((a,b)=>this.sortType===1? b.age-a.age : a.age-b.age)

          }

          return arr

        }

      }

    }

  </script>

</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值