来自同事和自己的一些踩坑记录:

1、页面生命周期onLoad和onInit函数无法使用async await。

2、uni-app主题色改变功能只能使用css变量,无法使用scss变量,且绑定根元素样式中不能直接绑定整个对象,必须把每一个选项列出来。在使用时要用横杠不能用驼峰

3、每个页面组件最外层都要包一层view,不然在高度计算时会出现问题。

4、拆分引用组件时,引用路径一定要完整引用到.vue,无法用index.ts/index.js。编译之后小程序会报组件引用不到的错误。

5、微信小程序websocket地址需要把wss写成wxs。

6、uniapp的组件要设置position: sticky必须得把组件外面包一层view即给定一个明确父级才能生效。

7、scroll-view中子元素无法基于该父元素绝对定位,必须包一层或者提到外面同级进行定位。

8、样式深度选择器需要加上一个配置才会起作用

//@ts-ignore
@Component({
options: { styleIsolation: ‘shared’ },
})
export default class demo extends Vue {}

ts中还得加上忽略检查,因为官方类型声明不全

9、uniapp开发微信小程序中,input输入框偶尔会出现v-model绑定的值已经清空,但是视图不更新,解决办法,使用 s e t , 并 包 一 层 set,并包一层 setnextTick,缺一不可。

10、ios的微信小程序输入框要键盘完全弹起才会触发focus事件,如果还没弹起来就点击了空白处失焦,会先触发blur事件,意思就是聚焦事件还没出发,失焦事件先触发了,解决方案,给input加个click事件,绑定focus变量控制获取焦点

11、微信小程序没有dom API,自定义了选取页面节点的API,在操作结尾要加上exec()去执行操作,且只能在最后的操作上加,内嵌会引起循环,导致不停的获取。

12、mqtt版本修改为4.1.0,微信小程序安卓真机解释器的Bug,它把host+port作为Host,能发出有效访问请求才怪。开发工具跟iOS真机解释器就没有这个问题,所以都能正确访问。且mqtt只能使用4.1.0,最新版也有问题

13、微信小程序安卓输入框在绑定focus变量之后且手动在点击时设置为true,输入文字,placeholder不会消失。

14、微信小程序scroll-view使用下拉刷新组件,必须先给定一个初始固定高度值,calc也不行,后续可以动态赋值。

15、小程序直播流使用flv会出现音画不同步。

16、在uni-ui的popup中使用输入框、文本域时,会出现样式问题。

17、在弹窗中,overflow会出现问题,设置滚动无效,无论是自己写的弹窗还是uni-ui的弹窗,只能用scroll-view去滚动。

18、使用mqtt时,在微信开发者工具中不会显示心跳包,设置keepalive(不是驼峰)之后会一直保持连接

19、scroll-view组件在自定义下拉刷新时,通过refresher-triggered来控制加载状态的显示隐藏,但实际使用时会遇到问题,下拉刷新执行事件直接将refresher-triggered绑定的值改为false不会关闭加载状态
解决方案:刚开始如果refresher-triggered在data里为false,则要先将它变为true

20、uniapp的input标签 type="number"在移动端打开键盘不能输入小数点,type得改成digit

21、input包裹的view上动态添加class,input会自动失焦

22、video组件使用v-show时会导致进度条丢失

23、输入框在聚焦失焦时动态改变长度,会导致焦点和placeholder有问题,解决办法,动态赋予焦点focus为true时,加个延时0.1s

24、ios小屏幕微信小程序计算高度会包含顶部刘海,大屏则不会

25、scroll-view外层也有滚动的时候,滚动到底部,偶尔会出现滚动到底部事件不生效。

26、在使用pop组件时,要在最外层添加浮动,并加上z-index,不然渲染层级会有问题。

27、微信小程序原生组件camera、canvas、input(仅在focus时表现为原生组件)、live-player、live、pusher、map、textarea、video的层级是最高的,页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上。解决方式可以通过cover-view或者自己重新写失焦后的展示标签(注意23条,否则Ios第一次会无法聚焦)

28、分享onShareAppMessage函数只能在页面触发,组件按钮分享传值可通过data-set方式传递信息

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐