小程序开发的几个好的实践
作者 | 张鹏
前端工程师,关注大前端各种新兴技术。
随着互联网发展格局的千变万化,小程序从起始的未知发展直至至今所引起的小程序浪潮。正因为小程序的开发愈加成熟,随之各种框架层出不穷,以至于很多方面需要我们不断摸索和尝试,很多弯路需要我们亲自踏遍从而劈开捷径,对于功能多,迭代多,入口多的小程序该如何开发?在本文中我与大家一起探讨,我所亲历和感悟的有关小程序最佳实践的那些事。
登录注册
- 落地页多(用户相关的界面也会有)
- 分享入口多(用户相关的界面也会被分享)
- 公开界面与私有界面以及共存的情况不确定
与产品事先约定好功能可行性边界是不明智的选择,不如从开始就做到足够大的边界才是明智之举。
- 公开页面(不需要用户信息,比如首页,活动展示页等)
- 私有页面(用户订单列表,个人数据等)
- 混合页面(有无用户信息都可以展示,可能样式上有区别)
checkRequest
的功能完成没有在图中展示出来,其实这里还可以做很多拓展,比如是否静默检查,是否强制检查,是否需要注册完成后完善相关信息,是否注册完成后进入下一个页面等等。所有的登录注册相关逻辑都可以进入到这个流程中来,不需要再考虑这个接口调用时用户处于什么状态,不需要考虑这个按钮点击后用户的不同状态如何处理等等,只需要定义目标状态即可。
路由
wx.navigateTo
、wx.redirectTo、
wx.reLaunch、
wx.switchTab
和 wx.navigateBack
。这些接口的使用都非常简单,提供页面的路径就可以跳转到响应的页面,比如:
- 需要输入页面的路径,当然可以是相对路径,但是还是会觉得不太方便,当页面很多时这种使用方式就非常的低效且容易出错,漏掉一个字符就会出现跳转错误的问题。另外,如果这个页面的目录变了,那么就需要修改所有使用的地方。
- 当需要带参数跳转时,拼接起来很不方便,尤其是参数较为多的情况时。
注入到常用对象中
Taro.navigateTo
这样的方法,因此能否将自定义的方法注入到这个对象上呢,那样的话使用起来应该会更加方便。
增加页面属性
与登录检查的结合
登录检查有了,路由也有了,刚好页面触发的用户登录注册就可以解决了。场景是这样的,新用户进到一个引导的页面(比如首页,或者其他无需用户登录的页面)时,点击跳转到一个子页面,而子页面是需要用户登录才能访问的,这时想要的逻辑是,如果这个用户已经注册过,那么无感知直接进入,如果未注册,那么就跳转到注册页面,注册完后跳转到子页面。
在路由跳转到目标页面的时候检查必要的前提条件,比如登录状态,发现用户并未注册时则调起登录注册页面,完成后进入目标页面。部分代码如下图:
闪屏页面
闪屏其实是不应该存在小程序中的一个页面,我们从原来的闪屏作为小程序的唯一入口,到现在登录注册的改造让闪屏从小程序中消失做了很多的改造。从唯一入口变成了多入口,闪屏已经不再需要。但是有些时候你还是会感觉一个闪屏页面确实会有其存在的必要性。
如上所示,如果我们加入了闪屏页面,可以作为统一的外部落地页,可以根据页面的别名再做跳转,然后直接使用了前面自定义的路由功能。
另外对于普通二维码这个功能是非常有必要的,因为普通二维码只能有10个,且每个的落地页固定,这样的处理就可以实现无限制的落地页,并且可以带很多参数。
综上所述,代码部分其实也是很简单的,处理两种类型的参数即可。有一个值得推荐的做法,结合自定义路由是很好的处理方式。另外还有一个较好的实践就是将参数展开,比如目标页面的参数,其实是带在入口页面上的,然后由入口页面结合自定义路由转发到目标页面,而不是直接带在目标页面上。
全文完
以下文章您可能也会感兴趣:
我们正在招聘 Java 工程师,欢迎有兴趣的同学投递简历到 [email protected] 。