1 动机
在使用uniapp开发小程序的过程中,遇到了很多和web端不一样的写法,在这里记录一下。
2 区别
- 调试工具,这是最明显的。微信开发者工具很简陋,不像浏览器一样有很多工具帮助,而且也不能快速定位某个元素。
- 小程序在非浏览器环境下,不支持
new File等操作,限制了对文件的操作、自定义的上传。 - 小程序在非浏览器环境下,没有 DOM BOM,没有
document。不支持getElementsByClassName以及addEventListener,获取节点的话只能用wx.createSelectorQuery().select('.xxx')代替,但是这个又不能访问子组件的,访问子组件需要加in,开发效率不高, - 有部分浏览器上面的包不能用。比如crypto 是node的内置依赖,不支持小程序中使用,因此nanoid和uuid之类的包就无法使用了,有需要的话就只能自己手写。
- 组件上的区别。 video等组件的特性与浏览器也不一样,包括但不限于倍速播放、跳转播放等操作都需要调用微信的API,开发效率不高。甚至做一个倍速播放的按钮还要重写控制栏...这是不能理解的。