平常我们在做一些商城小程序、订单类的小程序都会有地址模块;有时候为了项目的快速开发,要求前端开发人员把地址模块做成本地缓存;这边我做了一些简单的封装和效果;
新建一个公共js
/**
* 封装了对本地存储中的地址对象的操作
*/
let ADDRESS_CACHE_KEY='_address'; //本地地址缓存key
export default class addressUtils {
/*
* 从本地存储中获取address对象
*/
static getAddress() {
const addressInfo = wx.getStorageSync(ADDRESS_CACHE_KEY);
return addressInfo ? JSON.parse(addressInfo) : null;
}
/*
* 缓存地址信息
*/
static setAddress(addressInfo) {
if (addressInfo) wx.setStorageSync(ADDRESS_CACHE_KEY, JSON.stringify(addressInfo));
}
/**
* 寻找某条地址
* @param {*} id 地址id
*/
static findAddress(id){
let address = this.getAddress();
return address.find(item=>{return item.id==id})
}
/**
* 删除某条地址
* @param {*} id
*/
static deleteAddress(id){
let address = this.getAddress();
let flag = address.findIndex((item,index)=>{return item.id==id})
if(flag==-1) return false;
address.splice(flag,1);
this.setAddress(address);
return true;
}
/**
* 修改单条地址数据
* @param {*} intoData
*/
static editAddress(intoData){
let address = this.getAddress();
let flag = address.findIndex((item,index)=>{return item.id==intoData.id})
if(flag==-1) return;
address[flag]=intoData;
this.setAddress(address);
}
}
使用
具体使用方法 import addressCanche from '../../../utils/addressUtils.js';
具体使用的调用方法 addressCanche.getAddress() 即可
具体的布局文件就不发了 大家使用时自己布局即可