文章目录

  • 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非常困难。一般情况下会在子组件调用父组件定义父组件属性名的时候出现这种问题。

ios上uni内置icon加载不出来 uni-app常见问题_ios上uni内置icon加载不出来


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模式开发

前段时间用uniweex开发了一个项目,结果发现很多功能都不支持。虽然是有其他解决办法并且比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即可。




源码