mpvue实现微信小程序(欢迎踩坑)

最近刚使用mpvue完成了微信小程序的开发,写点东西,做个记录。

首先依旧是两个传送门:

微信小程序文档:[https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html][1]
mpvue的官网链接:[http://mpvue.com/][2]

踩坑记录:

  • 真机调试的时候,小程序的本地图片不显示;
    如:页面路径为:/pages/index/index.vue,图片路径:/static/img/1.png;最初在index.vue页面里面图片的src为“../../../static/img/1.png;然后发现在小程序的调试环境可显示,但是在真机上不显示;(但是放在components里面用这种方式写的图片没有这个问题)

    解决方式:把pages引用的图片地址都改为'/static/',以根目录开头
  • 之前设置颜色的时候,很喜欢rgba(0,0,0,.1),这样,然后真机测试的时候,我的手机是华为mate9(ios测试过没有问题,可能是安卓的问题)输入的时候是空白的但是有占位,点了回车才能显示,不能边输边显示;debug了半天,最后才发现我字体颜色设置为rgba的时候会导致错误

    解决方式:把color的rgba设置改为#设置
  • 使用微信小程序的picker组件实现省-城市选择;本来想直接用picker的城市mode的,但是这个数据要后台返回的而且也没有到区;picker还有一个多列选择器,感觉传入的数据实在是麻烦;最后用picker-view;清清爽爽;就设置两列,分别传入列数组就好了;这里遇到的一个坑就是,在绑定的change函数上,我无法取到当前change的是哪一列的数据;因为这里要做判断,如果是第一列的话,要替换第二列的数组内容;

    解决方式:新建变量,在change函数中赋值,在watch里面监听;
  • 不管用onload还是onshow方法,小程序的data里面的值始终没有被初始化;就比如我设置了一个状态变量,初值为false,我在页面操作后变为true;回退再打开时,它依然是true值;这个问题不知道是不是我哪里没有考虑到,暂时只是用了一个不是办法的办法解决

    解决办法:在onload方法内重置状态变量
  • 底部导航切换的时候,onshow每次都会调用,但是onload只会调用一次;
  • 对image来说,height:auto这个属性是不生效的;图片自适应的问题搞了半天;因为是一个富文本字符串,因此没有办法像官方文档设置mode;最后升级了我用的转换插件 (mpvue-wxparse)的版本;它支持富文本内设置图片的mode属性。
  • 搜索回车之前用的是@keyup.native 在小程序里面要换成@confirm
  • 还有跳转外链,小程序是有提供一个组件的<web-view :url=””></web-view>,实现的时候,只要单独做一个外链的页面只包含上面这个标签,传入url就可以了。这个标签是立即执行的,有这个的话,就会在当前页面直接跳转,所以我单独把它写成一个页面。专门用于外链跳转;但是外链跳转还是个坑,微信仅能支持跳到在它那边注册过的https的网址,其他还是不行,暂时没有找到好的方式;看了知乎,它的外链直接转成了文本,不可点击了。

最后的话

好了,暂时就写到这么多啦,第一次写小程序,虽然用了mpvue少了很多学习成本,但是转化的时候还是遇到了挺多问题,过程中都一直在网上搜索解决方式啊,也会发问题问问大家;感觉收获还挺大的;听说wepy也挺好用的,下次开发小程序的时候,可以看看试着用用。

    原文作者:立生
    原文地址: https://segmentfault.com/a/1190000015963897
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞