微信小程序知识
1、如何获得用户的授权信息?
通过wx.getUserProfile()
方法 和小程序 wx.getSetting()
方法获取
2、列表渲染如何实现?
在 wxml 标签添加 wx:for 属性
并赋值循环数据即可渲染
3、页面跳转的方式有哪些?
- 声明式导航: 使用
navigator
组件实现页面的跳转 - 编程式导航:使用小程序提供的 API 实现页面的跳转
wx.switchTab()、 wx.navigateTo()、 wx.navigateBack()等
4、页面生命周期包含那几个?
- onload() 页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打
开当前页面路径中的参数- onShow() 页面显示/切入前台时触发
- onReady() 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,
可以和视图层进行交互- onHide() 页面隐藏/切入后台时触发。 如 navigateTo 或底部 tab 切换到其他页面,
小程序切入后台等- onUnload() 页面卸载时触发。如 redirectTo 或 navigateBack 到其他页面时
5、分析下微信小程序的优劣势?
优势:
- 无需下载,通过搜索和扫一扫就可以打开
- 良好的用户体验:打开速度快
- 开发成本要比 App 要低
- 安卓上可以添加到桌面,与原生 App 差不多
- 为用户提供良好的安全保障。小程序的发布,微信拥有一套严格的审查流程,不能通过
审查的小程序是无法发布到线上的
劣势:
1、限制较多。页面大小不能超过 1M。不能打开超过 5 个层级的页面
2、样式单一。小程序的部分组件已经是成型的了,样式很难修改。例如:幻灯片、导航
3、 推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推广。其中附近小程序也受到微信的限制
6、bindtap 和 catchtap 的区别是什么?
相同点:
首先他们都是作为点击事件函数,就是点击时触发。在这个作用上他们是一样的,可以不做区分
不同点:
他们的不同点主要是 bindtap 是不会阻止冒泡事件的
,catchtap 是阻止冒泡的
7、简述下 wx.navigateTo(), wx.redirectTo(), wx.switchTab(), wx.navigateBack(), wx.reLaunch()的区别?
- wx.navigateTo():保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
- wx.redirectTo():关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
- wx.switchTab():跳转到 abBar 页面,并关闭其他所有非 tabBar 页面
- wx.navigateBack()关闭当前页面,返回上一页面或多级页面。可通过getCurrentPages()
获取当前的页面栈,决定需要返回几层- wx.reLaunch():关闭所有页面,打开到应用内的某个页面