第一个mpvue小程序开发总结

前言

说起小程序,其实在去年我都还只试着照着官方文档写过demo的,不过现在这家公司小程序做得比较多,我来之后也参与了几个小程序的开发了,最开始那几个是用的wepy,最近一个开始转用mpvue开发,最近这个项目终于上线了,我也来试着总结回顾一波吧。

关于框架的选择

我刚来现在的公司时,我就了解过有一个小程序框架叫mpvue被美团开源了,有过一个大致的了解。来了公司之后了解到我们公司已经有了一套自己的小程序技术栈那就是基于wepy的,而不是原生小程序,毕竟我们要开发的小程序不是简单的几个页面,而且原生小程序是不支持引入npm包的,原生语法开发的也相对慢一些。我们前端团队之前选择的wepy框架,这是一款腾讯出的小程序框架,类vue的语法,支持引入npm包,比较好地支持组件化开发,这是我们团队开发所必须的。

后来之所以要在最近一个项目中重新选型使用mpvue是因为,在使用wepy的过程中越来越觉得wepy像vue但又不如vue那么好用,而且我们项目一开始就是有计划做H5页面的,mpvue能够最大程度地支持我们代码的复用,而且大体上来说,mpvue能够提供全套的vue环境,包含数据管理vuex,这个跟我们其他用vue全家桶开发项目的切换时无缝的。套用一张网上比较原生、mpvue、wepy和taro的对比图吧(tarp暂时还没使用过,不评价)

项目的搭建

我们项目的基本结构是通过vue-cli生成的:

$ vue init mpvue/mpvue-quickstart my-project

然后就是常规的安装依赖和启动了,具体使用看文档。不过在开发过程中为了提高团队的效率以及最大程度上做到和原有的H5项目的一致从而做到最大程度地复用,我们还是改造了部分mpvue-quickstart 模板:

  • 为了集中式页面配置和新增页面热更新,webpack打包的入口文件使用mpvue-entry做统一处理
  • 为了和H5项目有尽可能一致的路由体验,引入了mpvue-router-patch
  • 官方模版默认是没有安装预处理器相关的依赖的,我们项目中用的sass,需要安装node-sass、sass-loader两个依赖
  • 数据请求这块我们使用的是fly.js,也叫flyio,并基于这个做了一些统一的封装,具体用法可以查阅前面提供的文档。之所以选择flyio,是因为它轻量且支持多种JavaScript,这样我们可以在不同项目中最大程度地复用请求代码。具体的封装代码下次专门用篇文章展开。
  • 关于登录和授权

    上面这张图是官方文档给出的一个完整流程,大体上来说就是先前端先通过用于授权获取code然后发送给我们自己的服务器,服务器通过登录凭证接口去微信接口服务器换取我们所需要的session_key和openid,之后我们与自己服务器之间的数据交互就只要验这个身份唯一标示就可以了。不过新版小程序更新之后用户登录权限需要手动触发了,这个需要注意。

还有一些改造的部分忘记了,先想到这些吧,完整的项目结构可以看我自己重新搭建的一个小项目https://github.com/wanCheng7/mpvue-components,这个项目的解构我基本上是按公司那个项目搭建的,准备放一些常用的组件,后续会逐步完善更新,欢迎带啊支持。

遇到的一些坑

1、关于分享功能

普通的页面分享给好友可以直接调用子弟你分享按钮

<butto n open-type='share'>分享</butto>

由于目前微信是不支持直接分享朋友圈的,所以要想分享朋友圈就只能曲线救国,那就是引导用户将要分享的图片保存到相册再分享这张图片。还有一种常见的场景就是分享我们带有小程序码的自定义图片给朋友或者朋友圈时可以先将这张图片用canvas绘制好,然后预览出来,预览出来之后用户是直接给朋友扫还是保存到手机里那就是用户的选择了。

2、关于页面数据缓存问题

因为mpvue中,小程序的生命周期钩子和vue的声明周期钩子是可以同时存在的,虽然官方不建议我们同时用,但是因为小程序一个页面的page在切换页面的过程中是不会销毁的,所以页面上的数据会被缓存起来,也就是说我们改变了A页面上的某些值,去到B页面之后再返回A页面的那些值还是改过之后的。这是我们想看到的吗?看业务情况,如果不是的话可以在onShow这个生命周期钩子里初始化那些变量。

3、关于样式适配问题

我印象比较深刻的一个问题是,如果不对页面最外层的盒子设置高度让里面的内容撑开盒子的话,在IOS系统下对底部设置margin和padding都是无效的,一定要设置一个min-height,而安卓没有这个问题。还有一些适配问题一时想不起来了。

总结

做完一个项目,真正到了总结时才发现有些问题没有及时总结,等做完项目之后可能都记忆模糊了,所以无论再忙,还是得及时总结才能记录下那些get到的知识点。

还有,就是想到那句话:能说到别人懂才是真的懂,发现自己在总结的过程中有些知识点当时查了资料似乎是懂了,可真正总结出来说给别人看时就有点说不上来了,说明还是理解得不够深入。所以,以后的文章不在于长而在于精,首先一定要坚持写同时每次尽量把一个小的知识点写得稍微深入一点点,加油!

参考文章

原文地址:https://www.cnblogs.com/wancheng7/p/9867745.html

时间: 2024-12-30 03:40:16

第一个mpvue小程序开发总结的相关文章

mpvue小程序开发中配置less支持

问题 开发小程序选定了mpvue框架后,然后是选择理想的小程序组件库,我选择的是Vant Weapp.但是,在Vant Weapp组件毕竟也是有限的,实际问题可能复杂得多.因此,把Vant Weapp组件与小程序原生组件(如swiper等)联合使用,甚至是开发自定义组件都是可能的.另一方面,使用Vant Weapp组件类似库的一个好处是,很大情况下,可以不必关注CSS样式的编写,但也不尽然.今天就遇到这样一个问题. 在mpvue框架时,我自然地使用了官方提供的mpvue-quickstart模板

mpvue小程序开发入门级指南

报错指南 "Error: ERR_GET_SESSION_KEY {"code":5100,"message":"(-1)服务内部错误,请稍后重试或联系客服人员解决." 解决: https://blog.csdn.net/shine_a/article/details/86749030 mpvue编译时出现 "未找到入口 app.json 文件,或者文件读取失败,请检查后重新编译."错误 改变根目录project.c

mpvue小程序开发之 集成第三方UI框架Vant Weapp UI

集成进第三方的UI框架其实很简单 这里把vant-weapp的dist目录重命名为vant-weapp放在项目根目录的static文件夹下: 在src文件夹下,即我们写vue代码的位置,正在编写的页面中添加main.json文件(vue代码编译成小程序代码时会直接使用这个文件) { "usingComponents": { "van-button": "/static/vant-weapp/button/index" //这个路径是指根目录下st

mpvue 小程序开发爬坑汇总

<!-- 小程序的爬坑记录 --> 1 微信小程序之动态获取元素宽高 var obj=wx.createSelectorQuery(); 2 微信小程序图片自适应 <image class="themeImg" :src="themeImg" mode="widthFix" /> mode设置为widthFix 宽度100% 3.小程序上拉加载 下拉刷新 4.通过 this.$root.$mp.query 进行获取小程序在

mpvue小程序开发tips(1)

wx.setStorageSync('vipId',vipId)-----存储 wx.getStorageSync('vipId')-------读取 wx.navigateTo({ url: `/pages/detail/main?id=${id}` })-------页面之间跳转传递参数 如果需要传递整个对象,如下: goPage (item) { let obj = JSON.stringify(item) wx.navigateTo({ url: `/pages/detail/main?

微信小程序开发入门教程

做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先来看看其有哪些官方文档. 微信公众平台开发者文档统一入口为:https://mp.weixin.qq.com/wiki,这里面大部分内容都是以前就有的,微信开发都是基于此份文档. 现在的变化是在这份文档的顶部加了一个“微信公众平台.小程序”的入口,这个入口才就是专门针对微信小程序开发的文档,如下图:

微信小程序开发环境搭建

微信小程序可谓是今天最火的一个名词了,一经出现真是轰炸了整个开发人员,当然很多App开发人员有了一个担心,微信小程序的到来会不会给移动端App带来一个寒冬,身为一个Android开发者我是不相信的,即使有,那也是很遥远的未来. 不管微信小程序是否能颠覆当今的开发格局,我们都要以好奇的心态去接收,去学习.不排斥新技术,所以,心动不如行动,赶紧先搭建一个微信小程序开发工具.那么接下来就让我们一起来开始吧. 微信已于9月23号晚发布了最新开发工具,以及官方文档,新版开发工具支持无appid登录开发者工

微信小程序开发工具下载以及安装教程

当我们已经申请微信小程序账号,接下来我们就需要安装一个微信小程序开发工具,下面微信小程序观察网请添加链接描述就和大家介绍一下微信小程序开发工具下载以及安装教程,希望对大家的工作与学习有所帮助! 第一步:微信公众平台上登录你的微信小程序账号 第二步:登录进入小程序开发-工具-下载,再根据你的系统选择相对应的版本地址进行下载. 第三步:以管理员身份运行下载,点击下一步,如图所示: 第四步:下一步,就会出现许可证协议,选择我接受.如图所示: 第五步:选定安装位置,浏览,选择桌面,点击安装,如图所示:

mpvue体验微信小程序开发

微信小程序 https://developers.weixin.qq.com/miniprogram/introduction/index.html?t=18082114 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 概览 为了帮助开发者简单和高效地开发和调试微信小程序,我们在原有的公众号网页调试工具的基础上,推出了全新的 微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式. 使用公众号网页调试,开发者可以调试微信网页授权和微信