最简单的数组filter

// 搜索框

<input type="text" v-model="keyWord" >

    <ul>

      <li v-for="item in filperson" :key="item.id">

        {{item.name + '--' + item.age}}

      </li>

    </ul>

// 数据列表

  person: [

        {

          id: 1,

          name: "张三",

          age: 18,

        },

        {

          id: 2,

          name: "老王",

          age: 18,

        },

        {

          id: 3,

          name: "盖伦",

          age: 18,

        },

      ],

      filperson:[],

      keyWord:''

// 使用侦听方法

  watch:{

    keyWord:{

      immediate:true,    // 直接执行一次 不用等数据变化

      handler(val){

        this.filperson = this.person.filter((p)=>{

          return p.name.indexOf(val) !== -1

        })

      }

    }

  },

// 使用computed

 computed:{

    filerperson(){

      return this.filperson = this.person.filter((v)=>{

        return v.name.indexOf(this.keyWord) !== -1

      })

    }

  },

// 完整代码

<template>

    <div>

        <input type="text" v-model="keyWord">

        <ul>

            <li v-for="item in filerperson" :key="item.id">

                {{item.name + '--' + item.age}}

            </li>

        </ul>

    </div>

</template>

<script>

    export default {

        data() {

            return {

                person: [{

                        id: 1,

                        name: "张三",

                        age: 18,

                    },

                    {

                        id: 2,

                        name: "老王",

                        age: 18,

                    },

                    {

                        id: 3,

                        name: "盖伦",

                        age: 18,

                    },

                ],

                filperson: [],

                keyWord: '',

            };

        },

        computed: {

            filerperson() {

                return this.filperson = this.person.filter((v) => {

                    return v.name.indexOf(this.keyWord) !== -1

                })

            }

        },

        // 使用侦听方法

    }

</script>

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

推荐阅读更多精彩内容