一个月写了个小程序-mpvue

开始

公司有了一个新的外包项目,是做一个比较简单的商城,但是项目比较紧张,周期就1个月,而且也没有其他人员参与,所以我要让全世界的人知道,这个小程序被我承包了。对的,包括数据库构建, api 端口,后台,小程序都是我自己写。

之前没做过小程序,看了一下知乎上面说的,做一个大概20来天,那么30天对新手来说还是可以的,匆匆忙忙就开始了。预估时间:接口7天,小程序10天,后台7天。结果: 太高估自己的能力了。

技术选型

最后确定了使用Thinkphp5 + mpvue来进行小程序的开发。

为什么用Thinkphp5

因为时间关系,后台直接使用FastAdmin来生成,挺好用的,对方又没有太多的后台要求,许多东西改改就成为一个可用的后台。所以,api接口也是直接使用当前它所带的版本,TP5.0来进行开发。

为什么用mpvue

看了一天的小程序,对于组件有了一个大致的理解,但是实际上手原生开发的话,还是比较的陌生。刚好有两个框架,mpvue和WePY这两个组件化框架,反正就是2选一,mpvue名字更像vue,所以就选它了。

分析开发过程中的一些体会

TP5

和Laravel比较的像,但是在开发过程中,对于比较熟悉Laravel开发的我,就经常会遇到很多编码习惯不兼容的问题。

  • 比如实现类似jwt的token,使用Laravel的话,jwt-auth就可以用了。在TP开发中,我使用了php-jwt来实现一个简单的类似jwt-auth的功能
  • 比如middleware,用于判断是否授权用户,自己使用了TP的$beforeActionList做了一个,同时比较坑的是,它只支持小写,就导致我熟悉的命名方法并不能生效,当时一直不明白是为什么。
  • 熟悉了scope方法,在TP里面也是有的,但是在调用的时候,我文档看的不仔细,scope方法必须首先被调用,所以当时也在想为什么。
  • 路由模式无法使用,我使用Laravel的vagrant来进行开发,但是使用路由的话,没办法获取/:id/这个东西,可能是FastAdmin的锅,后面直接使用路径了。

主要还是编码习惯的问题,习惯了Laravel在开发过程中带来的很多便利的调用,在用其他框架的时候,就会用得很不顺手。

与FastAdmin之间上线项目出现了更大的问题。本机PHP7.1,线上机器PHP5.6,本机没有问题,线上问题一大堆。

  • 查找不到控制器
  • 查找不到model
  • 查找不到页面

以上的几个坑我都不知道是不是和PHP5.6有关,具体原因的话,还是在于composer的namespace问题,以及PSR-4的命名问题,有时候是莫名其妙的跪了,后面改文件名,直接引入加载文件地址等来解决。

TP是个挺好的框架的,只是在我的机器上开发过程中会遇到很多问题,而我又很难找不到答案(应该是我机器环境配置有问题),TP中文社区里面的很多问题并不够友好,所以就写得很烦躁。但是,TP真的比较快,本地开发使用Laravel开发接口大概200ms,tp只要80ms,不会卡卡的。

mpvue

具体开发直接使用mpvue入门5分钟 就足够入门了,使用npm安装完编译环境,就可以开始弄了,开发的整体都和vue差不多,组件化也差不多。

有几个开发过程的小问题,也都是我自身的原因

  • 当时社区微信开发教程出来之后,我边参考边写我当前的小程序,对于async和await不够理解,还查了别人的实现,导致我后面对接微信登陆,授权,支付等方法异步没法把控的时候,就出现了很多的问题。所以,后面我都直接用Promise来做,等后期再看。
  • mpvue的data赋值之后,如果直接使用单个.object来进行赋值的话,并不会进行更新,除非整体进行赋值。
  • vuex来管控全局的状态,这个才开始用,不够熟悉,所以也用得少。

小程序端的话,最主要的还是我只是一个伪前端,能做界面,但我并不够专业,所以出界面相对来说比较慢,45个界面做了一周的时间。期间还有和UI的沟通,很多功能UI设计了,但是在小程序里面要还原出来,非常的麻烦,什么都要自己写。

总的来说,mpvue开发小程序没问题,理解一下小程序的一些声明周期和接口的一些用法,完全可以马上上手开发。注:先看看别人开源的小程序代码可以让自己的代码结构更清晰。

备注:开发的时候千万记住要提前确定好环境,客户域名,服务器和小程序,支付还没申请,直接挂我司的进行测试。我司服务器是5.6的,导致easywechat4.0用不了,一些composer也不兼容,我又返工用easywechat3重写,说多了都是泪。

本作品采用《CC 协议》,转载必须注明作者和本文链接
一入php深似海,从此c++是路人
本帖由系统于 4年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

之前也写过前端,最烦人的是调兼容 :sob:

5年前 评论

请问lz还接小程序的外包活儿嘛?

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!