微信小程序,给一个前端的快速筛选方法,要求可以支持多个参数的模糊筛选,给一个demo
时间: 2024-03-10 21:45:13 浏览: 58
微信小程序Demo:一个可以检测脉搏的小程序
好的,这里提供一个简单的微信小程序前端筛选的demo,支持多个参数的模糊筛选。
在wxml文件中,我们可以使用基本的组件来构建用户交互界面。例如:
```html
<view>
<input placeholder="请输入关键词" bindinput="onInput"/>
<checkbox-group bindchange="onCheckboxChange">
<label wx:for="{{checkboxData}}">
<checkbox value="{{item.value}}">{{item.label}}</checkbox>
</label>
</checkbox-group>
<button type="primary" bindtap="onSearch">搜索</button>
</view>
```
在js文件中,我们可以使用Vue.js或React.js等框架来管理我们的组件状态和数据。例如:
```javascript
Page({
data: {
keyword: '',
checkboxData: [
{ label: '类型1', value: 'type1' },
{ label: '类型2', value: 'type2' },
{ label: '类型3', value: 'type3' },
],
checkedValues: [],
searchData: [
{ id: 1, name: '商品1', type: 'type1' },
{ id: 2, name: '商品2', type: 'type2' },
{ id: 3, name: '商品3', type: 'type3' },
{ id: 4, name: '商品4', type: 'type2' },
{ id: 5, name: '商品5', type: 'type1' },
{ id: 6, name: '商品6', type: 'type3' },
],
filteredData: [],
},
onInput: function(e) {
this.setData({
keyword: e.detail.value,
});
},
onCheckboxChange: function(e) {
this.setData({
checkedValues: e.detail.value,
});
},
onSearch: function() {
const keyword = this.data.keyword.trim().toLowerCase();
const checkedValues = this.data.checkedValues;
const searchData = this.data.searchData;
const filteredData = searchData.filter(item => {
const typeMatch = checkedValues.length === 0 || checkedValues.includes(item.type);
const nameMatch = !keyword || item.name.toLowerCase().indexOf(keyword) !== -1;
return typeMatch && nameMatch;
});
this.setData({
filteredData: filteredData,
});
},
});
```
在这个demo中,我们使用了一个文本框和一个复选框组来获取用户的筛选条件。我们还通过一个数组来存储我们的数据集合,使用过滤器来筛选出符合条件的数据,并将它们存储在另一个数组中,然后在页面中使用这个数组来呈现结果。
这只是一个简单的筛选demo,你可以在此基础上添加更多的功能和优化。
阅读全文