最近在开发小程序,用的原生写的,也遇到了许多的坑,所以写出来当个随笔,希望能有用(仅供新手参考,如有写错还望指正)
1.获取授权
微信小程序现在获取授权,手机号之类的都必须用户点击button触发获取,这个很坑爹,刚开始不知道,还是同事给我说的,难顶。╮(╯▽╰)╭
2.生命周期
正常小程序页面的生命周期是
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
})
但是我在写的过程中发现tab选项卡内嵌的页面的话,这种生命周期是不会执行的,我在小程序官方文档中找到了这个
Component({
lifetimes: {
attached: function() {
// 在组件实例进入页面节点树时执行
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
},
// 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
attached: function() {
// 在组件实例进入页面节点树时执行
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
// ...
})
必须要把原本的生命周期换成这个才会执行,
而且页面中的方法的话,也需要放到methods中才可以获取到。
例如下面这种,不然也会报not found
methods: {
onChange(event) {
console.log(event)
this.setData({
activeNames: event.detail
});
},
}
也是很坑了,主要还是经验太少 -.-
暂时想到的就只有这些了,还有别的的话我会继续慢慢补充,希望能帮到大家。