文章目录
- 1、v-show打包后不起作用
- 2、过长的属性名只在PC端正常
- 3、Data.parse()时间转化为时间戳出现NaN,但在PC端正常
- 4、避免复杂动画
- 5、DOM操作
- 6、手机端uni.createSelectorQuery()为空,但在PC端正常
- 7、number.toFixed()方法报错失效,但在PC端运行正常
- 8、真机测试null会显示,而在PC端则不显示
- 9、千万不要使用uni-app的WEEX模式开发
- 10、uni-app的热更新解决方案
- 11、iconfont图标在ios端不显示,或部分图标不显示
- 12、nvue开发都是坑
- 13、uni中的v-html样式不生效
- 14、地图API ‘offCompassChange‘ is not yet implemented、chooseLocation、map、nextTick、forceUpdate、打开地图、位置
- 15、地图签名之uni.chooseLocation(OBJECT)、获取位置、{errMsg: ‘getLocation:fail 签名验证失败‘}
1、v-show打包后不起作用
v-show
这个vue
属性在打包后不起作用,可以用v-if
或者通过class
绑定来解决此问题。
2、过长的属性名只在PC端正常
这个问题比较少见,但是一旦出现就非常致命。因为它没有准确的报错信息,
debug
非常困难。一般情况下会在子组件调用父组件定义父组件属性名的时候出现这种问题。
3、Data.parse()时间转化为时间戳出现NaN,但在PC端正常
当需要将时间转化为时间戳时用到
Date.parse
方法,例如:2023-03-14 21:52:07
这个字符串时间要转化成时间戳,需要将-
替换为/
。console.log(Date.parse('2023-03-14 21:52:07'.replace(/-/g, '/')) / 1000);
4、避免复杂动画
所有的
h5+app
都不支持复杂的动画效果,这个暂时没有解决办法,尽量避免出现复杂的动画,否则会出现严重的卡顿问题。
5、DOM操作
在
uni-app
中基本可以说没有DOM
概念,只有节点概念。如果想通过JavaScript
的原生方法创建添加DOM
,建议不要这么做,uni-app
中可操作的DOM
功能只有更改获取它的宽高坐标等。
6、手机端uni.createSelectorQuery()为空,但在PC端正常
后面加一个
.in(this)
就可以解决。如果在内层函数使用,那么还需要在外层函数重新声明一下this
。let xx = uni.createSelectorQuery().in(this); // 函数内部 let _self = this; setTimeout(function() { let xx = uni.createSelectorQuery().in(_self); }, 100);
7、number.toFixed()方法报错失效,但在PC端运行正常
这个问题很简单,
number
变量在真机运行的时候可能会变为string
数据类型。这时候toFixed()
方法就无法进行运算了。所以使用parseInt()
方法或者使用parseFloat()
方法将number
变量变为数字类型即可。parseInt(6).toFixed(2) // 整数 parseFloat(6.666).toFixed(2) // 浮点型 // 一般使用第二个就好了, // 第一个parseInt()方法会把小数点后的数字清除
8、真机测试null会显示,而在PC端则不显示
所有
null
这个数据在真机上都会显示出来,在电脑上则不会,这个问题比较简单在真机上加以判断让其不显示或者写一个三元运算即可。x === null || 'null' ? 0 : x;
9、千万不要使用uni-app的WEEX模式开发
前段时间用
uni
的weex
开发了一个项目,结果发现很多功能都不支持。虽然是有其他解决办法并且比uni-app
开发模式要快很多(大概要快百分之二十左右吧整体),但是写起来异常麻烦,要踩很多坑,完全不值得牺牲开发成本来提高。并且出现问题,uni
的开源社区基本没有什么人,稍微刁钻一点的问题,发出的帖子就凉了,没人搭理。
10、uni-app的热更新解决方案
之前在用
h5+plus
方案写热更新的时候倒是没遇到什么坑,后续的uni开发中也是用的之前写的h5+
热更新的方案。但是后来有很多用uni
的朋友对于热更新这里感到很迷惑,主要集中在官方api
有坑,不管用,调试起来麻烦等。uni-app
热更新解决方案
11、iconfont图标在ios端不显示,或部分图标不显示
ios
端不支持css
的文字渐变效果,如果有些图标使用文字渐变的样式,那么图标就不会显示。文字没试过,理应同理。
12、nvue开发都是坑
再讲一遍那个
nvue
模式也就是weex
模式开发,大家不要用在项目里,就算用的话也要真机以及打包都要测试一遍,我一个朋友又在上面踩了坑。
13、uni中的v-html样式不生效
deep大法解决(样式深度监听)
/deep/img { max-width:100%; }
14、地图API ‘offCompassChange‘ is not yet implemented、chooseLocation、map、nextTick、forceUpdate、打开地图、位置
bug描述及控制台报错展示
API 'offCompassChange' is not yet implemented
,打包后报错,除微信小程序外,剩余的其他包都报错。
修复
在
uni.chooseLocation()
API的成功回调里面使用this.$nextTick(() => { this.$forceUpdate(); });
可以实现页面更新,但是报错依然存在,只是不影响流程。
15、地图签名之uni.chooseLocation(OBJECT)、获取位置、{errMsg: ‘getLocation:fail 签名验证失败‘}
报错截图
地图列表不显示,页面不可操作。
解决
重新申请
key
即可。
源码