这是我参与「第五届青训营」伴学笔记创作活动的第 7 天
今天这文章写得好赶,跟同学在外边聊了好久,聊到了这个行业的前景,现在互联网寒冬,也不知道程序员的出路在哪呜呜呜呜
一、formdata的引入和使用
小程序是没有fontdata的,所以需要自己去下载js,
当时的一个业务有多文件上传,原本在浏览器中用formdata就简单解决,但小程序里文件上传是一个(没记错的话,平时普通的开发中都是一个),所以就需要引入formdata,其实也简单,引入后有个readme,看看就了解用法了
当时就封装了一下下边这个,支持两个文件一块上传
二、校验
作者是正则表达式的漏网之鱼,所以还不是很懂,就把开发中用到的一点来记录一下hh
手机号校验
Email校验
电话校验
三、封装
请求封装
封装思路之前写过一篇文章过uniapp请求封装 | 青训营笔记 - 掘金 (juejin.cn)
工具封装
计算navigateback的delta
计算从pages/tabs/mine多次跳转页面后返回需要的delta
export default function getNavigateBackDelta(taregtPath) {
let pages = getCurrentPages();
let minePage = -1
for(let i = 0;i<pages.length;i++){
if(pages[i].route == 'pages/tabs/mine'){
minePage = i
break
}
}
return pages.length - minePage - 1
}
四、其他
页面之间传递对象
加密和解密,其实一般就用json转字符串就好了,但多一步加密总归好点嘛
encodeURIComponent(JSON.stringify({}))
JSON.parse(decodeURIComponent(option.xxx))
Unhandled promise rejection
遇到小程序日志打印有“Unhandled promise rejection”关键字,就试试--小程序基础库版本降低就行
小细节
引入component后要记得注册
加过定时器离开页面时记得去掉