平常我們?cè)谧鲆恍┥坛切〕绦颉⒂唵晤?lèi)的小程序都會(huì)有地址模塊;有時(shí)候?yàn)榱隧?xiàng)目的快速開(kāi)發(fā),要求前端開(kāi)發(fā)人員把地址模塊做成本地緩存;這邊我做了一些簡(jiǎn)單的封裝和效果;





新建一個(gè)公共js
/**
?*?封裝了對(duì)本地存儲(chǔ)中的地址對(duì)象的操作
?*/
?let?ADDRESS_CACHE_KEY='_address';?//本地地址緩存key
export?default?class?addressUtils?{
??/*
???*?從本地存儲(chǔ)中獲取address對(duì)象
???*/
??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ā)了? 大家使用時(shí)自己布局即可