这章主要介绍下我在做 Uniapp 开发时的一些各端的坑及解决方案。
- 在小程序中的原生组件,如果在他的上部有元素,元素的层级会失效
- 阻止事件冒泡时要在外层加一层标签
<view @tap.stop="stop"></view>,直接加.stop方法无效 - 不要用
v-show,可以用v-if或者通过class绑定来解决 - 弹出层的遮罩要阻止页面滚动,可以在遮罩的 touchmove 事件中加上
@touchmove.prevent=""默认事件 - swiper有默认高度,不写高度会无法渲染,需要动态计算图片宽高以覆盖
<swiper :style="{height: `${imageHeight}px`}">
...
</swiper>
@前端进阶之旅: 代码已经复制到剪贴板
- swiper动态加载数据,先前是多数组,加载后只有一组数据时,图片会显示空白,原因是之前切换了
current,加载后数据对不上,尝试把current设置为0 - 图片,接口等地址(业务域名和服务器域名)必须是
https,在真机会无法显示或报错,但模拟器调试不影响 - 主页面的生命周期用 onLoad 代替 created,onReady 代替 mounted,组件内使用原来的created 与 mounted
- webview 组件地址参数如果有中文,会报错,调试也很难发现,在构建地址前先用
encodeURIComponent转义 - 图片加载过程中会先变形,瞬间又恢复正常,可以用
height:auto解决 - image标签之间存在小细缝,可以设置
display:block和font-size:0 - 做吸顶效果时,安卓大多数机型还是不支持
position: sticky - 微信用户头像域名有
wx.glogo.cn,也有thirdwx.qlogo.cn - 菊花码扫码地址只支持32位长度,并且返回的数据存在
options.scene里 - 微信小程序组件的
getRelationNodes和头条小程序的返回值写法不统一,而且头条小程序子组件里不能用key这个关键字,导致在父组件获取子组件值一直为空,可以尝试变成keys - 抖音里的小程序原生下拉刷新无效,今日头条里正常 (2020-11-25)
- 抖音里的小程序
<block tt:for={{list}}>无效,乖乖的用<view>吧
# 小程序最新订阅消息
- 调试只能在真机中,本地开发者工具的wx原型链是没有 requestSubscribeMessage 方法的会报错
- 只能是用户点击触发
- 有微信版本限制,requestSubscribeMessage方法详解
# 小程序自定义预处理命令
这里有必要说下, 自定义预处理命令,官方文档写得确实不敢恭维,文档像是一笔带过,全靠悟,难道是觉得可有可无,没人用的意思?!要知道没点经验的同学,那是完全不知如何使用。
微信开发者工具,右上角有个详情 => 本地设置 => 启用自定义处理命令,命令支持 node,bash语法。

来个栗子:自动切换本地开发环境,我使用 nodejs 编写命令
开发环境配置文件./config/config.js
