小程序要点 | 青训营笔记

102 阅读2分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 7 天

今天这文章写得好赶,跟同学在外边聊了好久,聊到了这个行业的前景,现在互联网寒冬,也不知道程序员的出路在哪呜呜呜呜

一、formdata的引入和使用

小程序是没有fontdata的,所以需要自己去下载js,

image.png 当时的一个业务有多文件上传,原本在浏览器中用formdata就简单解决,但小程序里文件上传是一个(没记错的话,平时普通的开发中都是一个),所以就需要引入formdata,其实也简单,引入后有个readme,看看就了解用法了

当时就封装了一下下边这个,支持两个文件一块上传 image.png

二、校验

作者是正则表达式的漏网之鱼,所以还不是很懂,就把开发中用到的一点来记录一下hh

手机号校验

image.png

Email校验

image.png

电话校验

image.png

三、封装

请求封装

封装思路之前写过一篇文章过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后要记得注册

加过定时器离开页面时记得去掉