vue3 模糊搜索

        在项目中,搜索功能是经常需要使用的一个场景,最常用的是在列表数据中搜索一个想要的,并展示。搜索逻辑是只要用户输入值与产品的名称进行模糊匹配,符合条件的数据进行展示,不符合条件的数据过滤。步骤如下:

  1. 用户点击搜索框,输入内容;
  2. 点击搜索按钮,取用户输入值;
  3. 对用户输入值进行判断,若为空,则展示原列表,不为空则进行筛选;
  4. 将用户输入值与所有列表数据进行遍历匹配,若匹配,则展示匹配条目,完成搜索。
 <input placeholder="搜索姓名" v-model="inputValue" >
 <n-button type="primary" @click="searchig"> 搜索 </n-button>

setup中声明

const inputValue = ref('');
 //搜索
      const searchig = () => {
        data.arr = [];
        for (let i = 0; i < 自己数据列表.length; i++) {
          if (自己数据列表[i].name.indexOf(inputValue.value) != -1) {
            data.arr.push(自己数据列表[i]);
          }
        }
       列表数据源 = data.arr;//重新赋值
      };

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Vue3 中,模糊搜索可以通过过滤数组来实现。具体写法如下: ```html <template> <div> <input type="text" v-model="keyword" placeholder="请输入关键词" /> <ul> <li v-for="item in filteredList" :key="item.id">{{ item.name }}</li> </ul> </div> </template> <script> import { defineComponent } from 'vue'; export default defineComponent({ data() { return { keyword: '', list: [ { id: 1, name: 'Tom' }, { id: 2, name: 'Jerry' }, { id: 3, name: 'Lucy' }, { id: 4, name: 'Lily' }, ], }; }, computed: { filteredList() { return this.list.filter((item) => item.name.toLowerCase().includes(this.keyword.toLowerCase()) ); }, }, }); </script> ``` 在上面的例子中,我们使用了一个输入框来输入关键词,然后通过过滤数组来实现模糊搜索。具体思路是,在 `filteredList` 计算属性中,使用 `filter` 函数来过滤数组,只保留那些名称中包含关键词的项。需要注意的是,由于搜索时不区分大小写,因此我们需要将关键词和名称都转换为小写字母来进行比较。 最后,在模板中使用 `v-for` 指令来遍历 `filteredList` 数组,渲染符合条件的列表项。 ### 回答2: Vue 3中实现模糊搜索可以使用以下步骤: 1. 首先,在Vue组件中,创建一个data属性作为存储搜索关键词的变量,比如searchKeyword。 2. 在界面上的搜索框中绑定这个变量,即将关键词输入框的v-model绑定到searchKeyword。 3. 在data属性中创建另一个变量,用于存储搜索结果,比如searchResult。 4. 监听searchKeyword的变化,在变化时触发一个方法,可以使用watch或computed属性来实现。 5. 在这个方法中,使用JavaScript的filter()方法对要进行搜索的数据进行遍历,根据关键词的条件判断来筛选出符合条件的数据,将结果保存在searchResult中。 6. 在界面上展示搜索结果,可以使用v-for指令循环遍历searchResult,将每个结果展示出来。 7. 可以在搜索框下方添加一个"清空"按钮,点击按钮时将searchKeyword清空,同时将searchResult也清空。 以上是一个简单的模糊搜索的实现方法,在实际应用中,可以根据需求进行扩展和优化,比如引入节流函数来控制搜索频率,或者使用正则表达式进行更复杂的搜索等。 ### 回答3: Vue 3中实现模糊搜索的方法可以通过以下步骤来完成: 1. 创建一个Vue组件,在该组件中定义一个Vue实例数据作为输入框的值和搜索结果的列表。 2. 在组件中的模板部分,创建一个输入框,并使用`v-model`指令将其绑定到Vue实例的数据中。 3. 在Vue实例的计算属性中定义一个方法,用于处理模糊搜索逻辑。该方法接收输入框的值作为参数,并在数据列表中进行遍历。 4. 在遍历过程中,通过使用JavaScript的`includes()`方法来判断当前数据项是否包含输入框的值。如果包含,则将该数据项添加到搜索结果的列表中。 5. 在模板中使用`v-for`指令遍历搜索结果的列表,并展示结果。 6. 最后,为了实现实时搜索,可以在输入框上绑定`@input`事件,并将输入框的值作为参数传递给计算属性中的方法。 通过以上步骤,我们可以实现一个简单的模糊搜索功能。当用户在输入框中输入内容时,会实时对数据列表进行模糊匹配,并展示匹配的结果列表。这样就可以方便用户快速找到他们想要的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值