1. 微信小程序生命周期
1. onLaunch:小程序初始化完成时触发,全局只触发一次
2. onShow:小程序启动或从后台进入前台时触发
3. onHide:小程序从前台进入后台时触发
4. onError:小程序发生错误时触发
5. onPageNotFound:页面不存在时触发
6. onLoad:页面加载时触发
7. onShow:页面显示时触发
8. onReady:页面初次渲染完成时触发
9. onHide:页面隐藏时触发
10. onUnload:页面卸载时触发
11. onPullDownRefresh:用户下拉刷新时触发
12. onReachBottom:页面上拉触底时触发
13. onShareAppMessage:用户点击右上角转发时触发
14. onShareTimeline:用户点击右上角转发到朋友圈时触发
15. onTabItemTap:用户点击tab时触发
16. onResize:小程序窗口大小变化时触发
17. onKeyboardHeightChange:键盘高度变化时触发
18. onAddToFavorites:用户收藏时触发
19. onNavigateBack:用户点击返回按钮时触发
20. onAppHide:小程序切入后台时触发
21. onAppShow:小程序切入前台时触发
2. 微信小程序常用api
1. wx.request:发送网络请求
2. wx.navigateTo:跳转到指定页面
3. wx.showToast:显示消息提示框
4. wx.showLoading:加载框
5. wx.hideLoading:隐藏加载框
6. wx.getStorageSync:获取本地缓存数据
7. wx.setStorageSync:设置本地缓存数据
8. wx.getSystemInfo:获取系统信息
9. wx.getLocation:获取地理位置
10 wx.chooseImage选择图片
11. wx.previewImage:预览图片
12. wx.createAnimation:创建动画
13. wx.createCanvasContext:创建画布上下文
14. wx.getNetworkType:获取网络类型
15. wx.getStorageInfo:获取本地缓存信息
16. wxModal:显示模态对话框
17. wx.showActionSheet:显示操作菜单
18. wx.getSetting:获取用户权限设置
19. wx.openSetting:打开权限设置页面
20. wx.setNavigationBarTitle:设置导航栏标题
3. 微信小程序如何进行路由跳转
在微信小程序中实现页面跳转可以通过使用wx.navigateTo、wx.redirectTo、wx.reLaunch和wx.switchTab等方法来实现。下面是具的使用方法:
- 使用
wx.navigateTo方法进行页面跳转,保留当前页面,跳转到应用内的某个页面。
wx.navigateTo({
url: '/pages/page2/page2'
})
- 使用
wx.redirectTo方法进行页面跳转,关闭当前页面,跳转到应用内的某个页面。
wx.redirectTo({
url: '/pages/page2/page2'
})
- 使用
wx.reLaunch方法进行页面跳转,关闭所有页面,打开到应用内的某个页面。
wx.reLaunch({
url: '/pages/page2/page2'
})
- 使用
wx.switchTab方法进行页面跳转,跳转到应用内的某个tab页面,并关闭其他所有非tab页面。
wx.switchTab({
url: '/pages/page2/page2'
})
- 可以通过调用wx.navigate()方法来返回上一页。
// 返回上一页
wx.navigateBack({
delta: 1 // 返回的页面数,1表示返回上一页,表示返回上两页,依此类推
});
4. 微信小程序如何进行页面传值
- 使用页面跳转时传递参数
在跳转到目标页面时,可以通过url的query参数传递数据,例如:
wx.navigateTo({
url: 'pages/detail/detail?id=123'
})
在目标页面的onLoad生命周期函数中可以通过options参数获取传递的参数:
onLoad: function (options) {
console.log(options.id) // 输出 123
}
- 使用全局变量传递数据
可以将数据存储在app.js中的全局变量中,在需要使用的页面直接访问全局变量获取数据,例如:
在app.js中定义全局变量:
App({
globalData: {
userInfo: null
}
})
在页面中获取全局变量:
var userInfo = getApp().globalData.userInfo
- 使用缓存传递数据
可以使用小程序的缓存API来存储数据,然后在需要使用的页面读取缓存数据,例如:
在页面A中存储数据:
wx.setStorageSync('key', 'value')
在页面B中读取数据:
var value = wx.getStorageSync('key')
- 使用事件传递数据
可以通过事件机制来传递数据,例如:
在页面A中触发事件并传递数据:
this.triggerEvent('myevent', { data: 'value' })
在页面B中监听事件并获取数据:
this.on('myevent', function (event) {
console.log(event.data) // 输出 value
})
5. 小程序的性能优化有哪些方法
-
减少页面加载时间:减少页面的大小和数量,减少页面中的图片、视频等资源的大小,减少网络请求的次数,尽量使用异步加载和懒加载技术。
-
减少渲染时间:优化页面结构和样式,减少不必要的重绘和重排,减少使用复杂的CSS选择器和嵌套,避免频繁修改DOM。
-
减少内存占用:及时释放不再使用的资源,避免内存泄漏,合理使用缓存和存储,避免频繁创建和销毁对象。
-
优化网络请求:减少请求的大小和次数,合理使用缓存和预加载,使用CDN加速,优化接口的响应时间和数据格式。
-
使用原生组件:尽量使用小程序原生组件和API,避免使用自定义组件和第三方库,避免使用过多的动画效果。
-
使用优化工具:使用性能分析工具进行监控和分析,及时发现和解决性能问题,对关键路径进行优化,持续优化和改进小程序的性能。
6. 开发微信小程序遇到的问题以及如何解决
-
小程序审核被拒绝:审核被拒绝通常是因为小程序内容违规或不符合规定,需要根据审核意见进行修改后重新提交审核。
-
小程序功能无法正常运行:可能是代码逻辑问题、接口调用失败、网络连接异常等原因导致。解决方法是检查代码逻辑、接口调用是否正确,排查网络连接问题。
-
小程序页面加载速度慢:页面加载速度慢可能是因为页面内容多或网络环境不佳可以通过优化代码和图片大小等方式来提升加载速度。
-
小程序出现闪退或卡顿现象:可能是因为小程序代码存在性能问题,需要开发者进行优化和调整。
-
小程序推广困难:可能是竞争激烈、用户获取成本高等原因导致。解决方法是制定有效的推广策略,结合社交媒体、广告投放等方式提升小程序曝光度和用户量。
-
小程序数据安全问题:可能存在用户隐私数据泄露、接口数据传输不安全等问题。解决方法是加强数据加密、权限控制等安全措施,确保用户数据安全。
-
小程序与后台数据同步问题:小程序与后台数据同步可能会出现数据不一致的情况,需要确保数据传输和同步的准性。
-
小程序支付功能异常:可能是小程序的配置或权限设置错误,需要开发者进行查和修复。