1、路由傳參:
params傳參揍庄,刷新會(huì)被刷掉
query刷新不掉
storage最老實(shí)的辦法
vuex也可
2、判斷輸入是否為空
isNull(?str?){
????????if?(?str?==?""?)?return?true;
????????var?regu?=?"^[?]+$";
????????var?re?=?new?RegExp(regu);
????????return?re.test(str);
??????}
if(this.isNull(this.username)){
??????????????this.$toast('請(qǐng)輸入內(nèi)容')
??????????????return
??????????}
3东抹、時(shí)間戳轉(zhuǎn)換時(shí)間:
changetimestyle(times){???
????????????var?a,?jsdate=((times)???new?Date(times*1000)?:?new?Date());??
????????????var?pad?=?function(n,?c){??
????????????????if((n?=?n?+?"").length?<?c){??
????????????????????return?new?Array(++c?-?n.length).join("0")?+?n;??
????????????????}?else?{??
????????????????????return?n;??
????????????????}??
????????????};??
????????????var?txt_weekdays?=?["Sunday",?"Monday",?"Tuesday",?"Wednesday",?"Thursday",?"Friday",?"Saturday"];??
????????????var?txt_ordin?=?{1:"st",?2:"nd",?3:"rd",?21:"st",?22:"nd",?23:"rd",?31:"st"};??
????????????var?txt_months?=?["",?"January",?"February",?"March",?"April",?"May",?"June",?"July",?"August",?"September",?"October",?"November",?"December"];???
????????????var?f?=?{??
????????????????//?Day??
????????????????d:?function(){return?pad(f.j(),?2)},??
????????????????D:?function(){return?f.l().substr(0,3)},??
????????????????j:?function(){return?jsdate.getDate()},??
????????????????l:?function(){return?txt_weekdays[f.w()]},??
????????????????N:?function(){return?f.w()?+?1},??
????????????????S:?function(){return?txt_ordin[f.j()]???txt_ordin[f.j()]?:?'th'},??
????????????????w:?function(){return?jsdate.getDay()},??
????????????????z:?function(){return?(jsdate?-?new?Date(jsdate.getFullYear()?+?"/1/1"))?/?864e5?>>?0},??
????????????????//?Week??
????????????????W:?function(){??
????????????????????var?a?=?f.z(),?b?=?364?+?f.L()?-?a;??
????????????????????var?nd2,?nd?=?(new?Date(jsdate.getFullYear()?+?"/1/1").getDay()?||?7)?-?1;??
????????????????????if(b?<=?2?&&?((jsdate.getDay()?||?7)?-?1)?<=?2?-?b){??
????????????????????????return?1;??
????????????????????}?else{??
????????????????????????if(a?<=?2?&&?nd?>=?4?&&?a?>=?(6?-?nd)){??
????????????????????????????nd2?=?new?Date(jsdate.getFullYear()?-?1?+?"/12/31");??
????????????????????????????return?date("W",?Math.round(nd2.getTime()/1000));??
????????????????????????}?else{??
????????????????????????????return?(1?+?(nd?<=?3???((a?+?nd)?/?7)?:?(a?-?(7?-?nd))?/?7)?>>?0);??
????????????????????????}??
????????????????????}??
????????????????},??
????????????????//?Month??
????????????????F:?function(){return?txt_months[f.n()]},??
????????????????m:?function(){return?pad(f.n(),?2)},??
????????????????M:?function(){return?f.F().substr(0,3)},??
????????????????n:?function(){return?jsdate.getMonth()?+?1},??
????????????????t:?function(){??
????????????????????var?n;??
????????????????????if(?(n?=?jsdate.getMonth()?+?1)?==?2?){??
????????????????????????return?28?+?f.L();??
????????????????????}?else{??
????????????????????????if(?n?&?1?&&?n?<?8?||?!(n?&?1)?&&?n?>?7?){??
????????????????????????????return?31;??
????????????????????????}?else{??
????????????????????????????return?30;??
????????????????????????}??
????????????????????}??
????????????????},??
????????????????//?Year??
????????????????L:?function(){var?y?=?f.Y();return?(!(y?&?3)?&&?(y?%?1e2?||?!(y?%?4e2)))???1?:?0},??
????????????????Y:?function(){return?jsdate.getFullYear()},??
????????????????y:?function(){return?(jsdate.getFullYear()?+?"").slice(2)},??
????????????????//?Time??
????????????????a:?function(){return?jsdate.getHours()?>?11???"pm"?:?"am"},??
????????????????A:?function(){return?f.a().toUpperCase()},??
????????????????B:?function(){??
????????????????????var?off?=?(jsdate.getTimezoneOffset()?+?60)*60;??
????????????????????var?theSeconds?=?(jsdate.getHours()?*?3600)?+?(jsdate.getMinutes()?*?60)?+?jsdate.getSeconds()?+?off;??
????????????????????var?beat?=?Math.floor(theSeconds/86.4);??
????????????????????if?(beat?>?1000)?beat?-=?1000;??
????????????????????if?(beat?<?0)?beat?+=?1000;??
????????????????????if?((String(beat)).length?==?1)?beat?=?"00"+beat;??
????????????????????if?((String(beat)).length?==?2)?beat?=?"0"+beat;??
????????????????????return?beat;??
????????????????},??
????????????????g:?function(){return?jsdate.getHours()?%?12?||?12},??
????????????????G:?function(){return?jsdate.getHours()},??
????????????????h:?function(){return?pad(f.g(),?2)},??
????????????????H:?function(){return?pad(jsdate.getHours(),?2)},??
????????????????i:?function(){return?pad(jsdate.getMinutes(),?2)},??
????????????????s:?function(){return?pad(jsdate.getSeconds(),?2)},??
????????????????O:?function(){??
????????????????????var?t?=?pad(Math.abs(jsdate.getTimezoneOffset()/60*100),?4);??
????????????????????if?(jsdate.getTimezoneOffset()?>?0)?t?=?"-"?+?t;?else?t?=?"+"?+?t;??
????????????????????return?t;??
????????????????},??
????????????????P:?function(){var?O?=?f.O();return?(O.substr(0,?3)?+?":"?+?O.substr(3,?2))},??
????????????????c:?function(){return?f.Y()?+?"-"?+?f.m()?+?"-"?+?f.d()?+?"T"?+?f.h()?+?":"?+?f.i()?+?":"?+?f.s()?+?f.P()},??
????????????????U:?function(){return?Math.round(jsdate.getTime()/1000)}??
????????????};??
????????????var?dateStr?=?'Y-m-d?H:i:s'?;//xxxx-x-x x:x:x
????????????//var dateStr = 'Y-m-d';//xxxx-x-x
????????????return?dateStr.replace(/[\\]?([a-zA-Z])/g,?function(t,?s){?
????????????????var?ret;?
????????????????if(?t!=s?){??
????????????????????ret?=?s;??
????????????????}?else?if(?f[s]?){??
????????????????????ret?=?f[s]();??
????????????????}?else{??
????????????????????ret?=?s;??
????????????????}??
????????????????return?ret;??
????????????});??
????????},
4蚂子、localstorage存儲(chǔ)和獲取數(shù)組、對(duì)象(原文:https://www.cnblogs.com/ranyonsue/p/6402687.html)
過(guò)期策略:localstorage永久存儲(chǔ)府阀,不過(guò)期缆镣,除非手動(dòng)刪除,sessionstorage在重啟瀏覽器试浙、關(guān)閉頁(yè)面或新開(kāi)頁(yè)面時(shí)失效董瞻。
demo:
var obj = {};
var str = JSON.stringify(obj);
//存入
localstorage.obj = str;
//讀取
str = localstorage.obj;
//重新轉(zhuǎn)換為對(duì)象
obj = JSON.parse(str);
5、驗(yàn)證碼倒計(jì)時(shí):
var?waits=59;
????????????????????var?timers?=?setInterval(()?=>?{
????????????????????????if(waits?<?1){
????????????????????????????waits=1;
????????????????????????????clearTimeout(timers)
????????????????????????????_this.txts?=?'獲取驗(yàn)證碼'
????????????????????????}else{
????????????????????????????_this.txts?=?waits+'秒后重發(fā)'
????????????????????????????waits--;
????????????????????????}
????????????????????},?1000)
6、搶購(gòu)倒計(jì)時(shí)(endDateStr為時(shí)間戳格式)
TimeDown(id,endDateStr)?{
????var?endDate?=?(new?Date(endDateStr)).valueOf();
????//當(dāng)前時(shí)間
????var?nowDate?=?(new?Date()).valueOf();
????//相差的總秒數(shù)
????var?totalSeconds?=?parseInt((endDate*1000?-?nowDate)?/?1000);
????//天數(shù)
????var?days?=?Math.floor(totalSeconds?/?(60?*?60?*?24));
????//取模(余數(shù))
????var?modulo?=?totalSeconds?%?(60?*?60?*?24);
????//小時(shí)數(shù)
????var?hours?=?Math.floor(modulo?/?(60?*?60));
????modulo?=?modulo?%?(60?*?60);
????//分鐘
????var?minutes?=?Math.floor(modulo?/?60);
????//秒
????var?seconds?=?modulo?%?60;
????this.djscont?=?"還剩:"?+?days?+?"天"?+?hours?+?"小時(shí)"?+?minutes?+?"分鐘"?+?seconds?+?"秒";
????//延遲一秒執(zhí)行自己
????let?that?=?this
????setTimeout(function?()?{
????????that.TimeDown(id,?endDateStr);
????},?1000)
},
未完待續(xù)钠糊。挟秤。。抄伍。艘刚。