小程序
小程序与React
、Vue
之间有很多共通之处,将一些概念转换过来可以快速融入微信小程序思路:
小程序也有生命周期,一般会在
onLoad
处理请求接口,因为它是最触发的生命周期钩子。在小程序中使用
import
语法时,要使用相对路径,不能使用绝对路径(如访问根目录/
), 否则会抛错。在组件上,小程序的
this.triggerEvent
相当于vue
的this.$emit
, 通过调用 API 来通知父组件有事件触发。只有跟
wxml
内有绑定的变量才需要放在this.data
中,其余的放在this
里。这样能减轻渲染的压力。Page({ /** * 页面的初始数据 */ data: { // 需要跟 wxml 模板绑定的数据 gifts: {}, }, // timer 只是用于储存定时器,不需要在页面中渲染 _timer: null, /** * 页面的方法列表 */ methods: { /* ... */ }, });
组件设计指南
- 不违反组件封装原则,提供修改默认样式的机制
- 使用外部样式命名可以以
.ex-
为开头作为标识,如.ex-tag
小程序授权
- 可以通过调用
wx.getSetting
,判断data.authSetting['scope.userInfo']
来获取用户是否授权的信息 - 没有授权的话,我们可以标记一个状态变量(
hasLogin
),当没有授权信息的时候,设置为false
。 - 页面通过这个变量来控制显示真正的按钮,还是授权按钮(wx:if-else)
- 现在微信的授权,需要引导用户主动点击按钮才会弹出授权的窗口,需要使用原生的 button 组件,通过调用
getuserinfo
的回调拿到userInfo
信息,判断用户是否点击了授权
小程序已知的坑
- 场景值并不是实时更新的,因此依赖场景值去判断可能会存在问题。