model层就不用多说了,主要是把数据处理部分独立出来,便于统一服务和维护,这里重点强调下model内部的实现细节,这里有一个实现技巧可以用在其它别的地方。下面直接上代码部分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| import cache from '../utils/cache.js' import ajax from '../utils/ajax.js'
let url = "";
let formatParams = function(params) { return params; }
let formatResult = function(data) { return data; }
module.exports = {
getList(params) {
let url = "";
let formatParams = function(params) { return params; }
let formatResult = function(result) { return result; }
return new Promise((resolve, reject) => {
var goods_list = cache.get("goods_list");
if (null == goods_list) { resolve(goods_list) } else { ajax.get({ url: url, data: formatParams(params), login: false, loading: true, }).then((res) => { var data = formatResult(res.data) cache.set("goods_list", data, 86400) resolve(data); }).catch((error) => { reject(error) }) } }) } }
|
1 2 3 4 5 6 7
| import goods from '../../models/goods.js'
goods.getList().then((res) => { console.log("成功", res) }, (error) => { console.log("失败", error) })
|
- 把参数处理和返回结果处理拆出来放到单独的处理方法里,方法名称保持统一:
formatParams
, formatResult
- 同时最外层定义好默认的
formatParams
, formatResult
,如果不做特殊处理,直接使用默认即可(建议不处理也调用下默认方法,规范流程)
- 还有一点,model里方法命令有统一规范都是已
get
, add
, update
, del
开头
这个思路其实可以运用到任何场景,特别是在没有任何限定框架的场景,我们只需要按照这个模式去实现,代码一样很清晰漂亮。