这个月利用空闲时间和朋友做了一个记录类型的小程序,他写后端,我写前端,每隔一周就讨论一下产品的功能和UI,这种全程自主设计、自主开发的感觉还是很不错的。第一次写小程序,后端尝试使用了云开发,前端也遇到了不少问题,回顾一下,大部分还是因为对文档接口API不熟悉造成的,现在对遇到的内容总结一下,加深记忆
Flex 移动端布局 Flex 真的是非常好用,以前学习过 Flex 的内容,但是没有具体使用就忘记了,这次实际应用了之后才感受到它的便利,相比于传统的浮动布局要简洁很多,再搭配微信的 rpx 单位,只要界面骨架设计思路清晰,很快就能完成一个页面。
默认表单提交 由于小程序采用数据绑定的形式,不建议获取 DOM 内容,所以小程序中的表单用自己特有的 formType=“submit” 形式提交,而且要在表单项中添加 name 属性,以 e.detail.value.tags 的形式把表单值传给后端。如果在表单提交时有对表单项进 setData()的操作是不会生效的,这一项提交上去的会是空值,因为 setData()设置的值改变 data 值是同步的而渲染到视图是异步的,这一点真的很重要。
页面跳转 提交表单后想让页面跳转至回忆汇总页,但是 we.navigateTo()却不起作用,原因在于回忆汇总页已被添加到 Tabbar中,只能通过 we.switchBar()或者 we.reLanch()来做路由跳转,而且为了显示出最新发布的那条记录,需要用 we.reLanch()来重新请求页面。
倒序排列记录 回忆汇总页的记录设计成了倒序排列,方便使用人员查看,实现时前端可以先把接受到的数组 reverse 一下,然后列表渲染,但是后端用 ORDERBY(desc)会更快一些。要注意的是处理接受到的后端数据时,要看清数据封装格式,尤其是最外面的括号的位置,不然路径写错了之后获取不到数据就很坑。
下拉刷新,刷新动画的停止 对于下拉刷新,微信设置了下拉事件 onPullDownRefresh,在事件对应的函数中请求一次最新数据即可,如果默认动画(三个点)没有显示,可能是和窗口背景色一样,重新将提示动画设置为另一种颜色模式即可。数据异步请求结束之后要记得设置动画结束函数 wx.stopPullDownRefresh(),不然动画会一直出现
搜索栏样式与 icon 的选配 回忆汇总页的搜索栏使用了放大镜图标,边框圆角靠 border-radius 实现,在搜索时对用户输入做判断,会先将用户输入内容两端的空格通过trim()去掉,如果内容为空,会进行输入内容不能为空的提示。点击搜索时也会先做一次判断,如果此时传入的内容是空,点击搜索会默认请求加载全部记录,否则就将数据传给后端进行搜索。字体图标的使用是非常普遍的,我是在阿里的字体图标库下载的,要注意的是统一字体图标的大小和配色,多学习参考一些好产品的UI设计。
时间 & 地点 & 时间戳
传参至新页面点击某条记录跳转至详情页时,需要用到 data-id 属性来进行参数传递
分页的实现与懒加载
提交按钮发布一次后禁用的思路
