Vue3怎样利用v-model写一个多条件连合搜刮 [复制链接]
发表于 2026-2-8 21:22:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
在Vue 3中,利用v-model举行多条件连合搜刮通常涉及到绑定多个输入字段到组件的数据属性上,并在搜刮逻辑中根据这些属性的值来过滤数据。固然v-model本身是针对单个表单元素举行双向数据绑定的,但你可以通过联合利用多个v-model和盘算属性或方法来处理处罚多条件搜刮。
以下是一个简朴的例子,展示了怎样在Vue 3组件中实现多条件连合搜刮:
1. 组件模板
  1. <template>  
  2.   <div>  
  3.     <input type="text" v-model="search.name" placeholder="搜索姓名">  
  4.     <input type="text" v-model="search.age" placeholder="搜索年龄">  
  5.     <button @click="performSearch">搜索</button>  
  6.   
  7.     <ul>  
  8.       <li v-for="item in filteredItems" :key="item.id">  
  9.         {{ item.name }} - {{ item.age }}  
  10.       </li>  
  11.     </ul>  
  12.   </div>  
  13. </template>
复制代码
2. 组件脚本
  1. <script>  
  2. import { ref, computed } from 'vue';  
  3.   
  4. export default {  
  5.   setup() {  
  6.     // 假设这是你的数据源  
  7.     const items = ref([  
  8.       { id: 1, name: 'Alice', age: 25 },  
  9.       { id: 2, name: 'Bob', age: 30 },  
  10.       { id: 3, name: 'Charlie', age: 28 },  
  11.       // 更多数据...  
  12.     ]);  
  13.   
  14.     // 搜索条件  
  15.     const search = ref({  
  16.       name: '',  
  17.       age: ''  
  18.     });  
  19.   
  20.     // 使用计算属性来过滤数据  
  21.     const filteredItems = computed(() => {  
  22.       return items.value.filter(item => {  
  23.         return (  
  24.           item.name.toLowerCase().includes(search.value.name.toLowerCase()) ||  
  25.           (search.value.age && parseInt(item.age, 10) === parseInt(search.value.age, 10))  
  26.         );  
  27.       });  
  28.     });  
  29.   
  30.     // 搜索函数(可选,如果搜索操作需要更复杂逻辑)  
  31.     function performSearch() {  
  32.       // 在这个例子中,搜索是实时的,因为filteredItems是计算属性  
  33.       // 但如果搜索逻辑更复杂,你可以在这里实现  
  34.     }  
  35.   
  36.     return {  
  37.       items,  
  38.       search,  
  39.       filteredItems,  
  40.       performSearch  
  41.     };  
  42.   }  
  43. };  
  44. </script>
复制代码
关键点


  • v-model:用于绑定每个搜刮条件到组件的search对象的相应属性。
  • 盘算属性:filteredItems是一个盘算属性,它基于items和search对象来过滤数据。这确保了每当items或search对象发生厘革时,过滤后的列表都会主动更新。
  • 搜刮逻辑:在filteredItems的盘算属性中,我们利用了filter方法来根据search对象的值过滤items数组。这里我们利用了简朴的字符串包罗和数值比力作为搜刮条件。
  • 按钮点击:固然在这个例子中,搜刮是实时的(由于利用了盘算属性),但假如你必要实行更复杂的搜刮逻辑(好比异步搜刮),你可以在performSearch函数中实现这些逻辑。
这种方法答应你机动地扩展搜刮条件,而且由于利用了Vue的相应式体系和盘算属性,它会主动处理处罚数据的更新和视图的重新渲染。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表