UniApp是基于Vue.js框架和微信小程序基础库封装的跨平台开发工具,允许开发者使用同一份代码,在多个平台上快速构建应用。但是在实际开发中,可能会遇到一些坑点,本文将为大家详细介绍些UniApp开发微信小程序的坑点。
一、微信小程序不支持原生DOM操作
微信小程序不支持原生的DOM操作,意味着你不能使用类似document.getElementById()或者其他的dom查询和dom操作。在UniApp中同样有此限制,但是为了让开发者更方便的使用,uniapp引入了许多对应的API,如$refs可以获取组件实例,$emit可以向子组件传递数据,$parent可以获取父组件实例等等。开发者可以利用这些API完成类似DOM操作的需求。
二、微信小程序不能在onLoad钩子函数中渲染组件
在微信小程序中,渲染组件是在生命周期中的ready钩子函数中进行的,而在Vue中,组件渲染是在mounted钩子函数中进行的。这两个钩子函数执行的时机是不同的,如果在onLoad生命周期函数中通过this.$refs去访问组件,就有可能会拿到null。正确的姿势是在该页面的mounted钩子函数中访问组件实例。
三、微信小程序不支持eval()函数
在开发uniapp的时候,最好不要使用eval()函数,因为微信小程序不支持eval()函数。如果一定要使用eval(),可以将对应的字符串转换成一个函数然后执行。
四、微信小程序透明度问题
在微信小程序中实现组件透明度的常用方法是:
opacity: 0.5;
但是在uniapp中使用该方法无效,正确的姿势是:
opacity: rgba(0,0,0,0.5);
这样就可以实现组件的透明度。
五、uniapp不支持原生的localStorage和sessionStorage
在微信小程序中,为了防止数据泄露,不支持原生的localStorage和sessionStorage。在uniapp中同样有此限制,但是开发者可以使用uni对应的API来完成数据存储,如uni.setStorageSync()、uni.getStorageSync()等。
以上就是uniapp开发微信小程序的坑点介绍,通过了解这些坑点,开发者可以更加高效地开发微信小程序。