当前位置: 首页 > Web前端 > HTML

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

时间:2023-04-02 14:11:52 HTML

最近使用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;然后发现在小程序的调试环境下可以显示,但是真机上不显示;(但是组件中这样写的图片没有这个问题)解决方法:在开始前设置颜色时,将页面引用图片的地址改为'/static/'根目录,我喜欢rgba(0,0,0,.1),这样在真机测试的时候,我的手机是华为mate9(ios测试没问题,可能是安卓的问题)。进入,是空白但是有占位符,点击返回只能显示汽车,输入的时候不能显示;调试了半天,终于发现当字体颜色设置为rgba时,会导致报错城市选择;本来想直接用picker的城市模式,但是这个数据要后台返回,还没到地区;picker还有多列选择器,感觉传入数据真的很麻烦;最后使用选择器视图;令人耳目一新;只需设置两列,分别传入列数组即可;这里遇到的一个坑是在boundchange函数上,获取不到当前是哪一列发生了变化的数据;因为这里做了判断,如果是第一列,则替换第二列的数组内容;解决方案:新建一个变量,在change函数中赋值,在watch中监听;无论使用onload还是onshow方法,小程序数据中的值都没有被初始化;比如我设置了一个初始值为false的state变量,页面运行后我改成了true;当它回滚并再次打开时,它仍然是一个真值;不知道我有没有考虑过这个问题所以,暂时我只是用了一个不是解决方案的方案:在onload方法中重置state变量,切换底部导航时,onshow会每次都调用,但是onload只会调用一次;对于图像,属性height:auto无效;图像自适应的问题已经工作了很长时间;因为是富文本字符串,所以没有办法像官方文档那样设置mode;最后,我升级了我使用版本的转换插件(mpvue-wxparse);支持设置富文本中图片的mode属性在使用@keyup.native前搜索回车。在小程序中,需要替换成@confirm,跳转到外部链接。小程序提供了一个组件,实现时只需要做一个单独的外部链接页面,只包含上面的标签,传入url即可。此标记立即执行。如果有这个标签,会直接跳转到当前页面,所以我写成一个单独的页面。专门用于外链跳转;但是,外部链接跳转仍然是一个陷阱。微信只能支持跳转到已经在上面注册过的https网址,其他的还不行,暂时没找到好办法;看完知乎后,其外链直接转为文字,无法点击。最后的话ok了,暂时就这些吧。这是我第一次写小程序。虽然使用mpvue节省了很多学习成本,但是在转换的时候还是遇到了很多问题。过程中一直在网上寻找解决方案。嗯,我也会发帖问大家;感觉收获挺大的;听说wepy也很好用,下次开发小程序的时候可以看看试试。