# SearchStore 前端数据检索

使用场景:前端一次性加载所有数据,之后用户在前端操作时,直接从前端缓存的数据中进行搜索,而无需每次都调用后端接口。

# 属性

属性名称 属性类型 说明
data Array 所有数据
result Array 检索后的数据
paras Object 查询条件

# 方法

方法签名 说明 参数说明 备注
setData(data) (重新)加载数据源 data:Array<Object>,数据集,必传 加载后,会立即执行搜索
delPara(key) 移除指定查询参数 key:String,参数名称,必传
clearPara() 移除所有查询参数 -- --
setPara(key, value) 设置查询参数 -- --

# setPara

参数

key:String,参数名称,必传
value:string|number|boolean|function|array,参数值,必传

根据value的类型不同,执行不同的过滤行为

string:模糊匹配
number、boolean:精确匹配
function:调用Array的filter方法进行自定义搜索
array:精确匹配数组中任意一项

# 实例

import {SearchStore} from 'sjfx';

const data = {
	"success": true,
	"total": 2,
	"msg": "成功",
	"data": [
		{
			"id": 1,
			"name": "张三",
			"isAdmin": true
		},
		{
			"id": 2,
			"name": "李四",
			"isAdmin": false
		}
	]
};

const store = new SearchStore();

store.setData(data);
//string
store.setPara('name', '张三');


//Boolean
store.clearPara();
store.setPara('isAdmin', true);
//Number
store.clearPara();
store.setPara('id', 1);
//function
store.clearPara();
store.setPara('diy', function (item) {
	return item.isAdmin || item.name === '张三';
});
//以上4个setPara在本Demo中均返回同样的结果
Last Updated: 1/14/2020, 3:34:31 PM