平常我們在做一些商城小程序、訂單類的小程序都會有地址模塊;有時候為了項目的快速開發(fā)掰吕,要求前端開發(fā)人員把地址模塊做成本地緩存版保;這邊我做了一些簡單的封裝和效果呜笑;
新建一個公共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;
??}
??/**
???*?修改單條地址數(shù)據(jù)
???*?@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';
具體使用的調(diào)用方法? addressCanche.getAddress() 即可
具體的布局文件就不發(fā)了? 大家使用時自己布局即可