今天完成的事:
对微信小程序框架有了初步了解,完成了页面初步编写
明天计划的事:
完成底部的滚动选择器,数据绑定,点击事件
遇到的问题:
暂无
收获:
过滤type中的数据的方法:
1、将显示的数据和完整的数据分开定义,在获取到数据后就进行过滤,过滤后把要显示的数据进行setData
2、如果是简单的过滤,页面也支持 if 判断的,不过这样会导致页面上节点过多
wx:if
在微信框架中,用wx:if="{{condition}}"来判断是否需要渲染改代码:
<view wx:if="{{condition}}">True</view>
也可以用wx:elif 和wx:else来添加一个else块:
<view wx:if="{{length > 5}}">1</view>
<view wx:elif="{{length > 2}}">2</view>
<view wx:else>3</view>
3、通过样式来过滤,可以根据type的字段来选择对应的class(即样式是否为display:none;)如:可以在tpye中定义一个hide字段,当hide为true时隐藏,当hide为false时,显示,这种方式比较适合数据量较大(显示层数据和完整数据分开定义会占用过多的内存,而且对较大的显示数据进行setData性能也比较差),并且只是展现不做其他业务处理的情况
一个类没有定义login方法和getUserInfo方法却还能调用?
在WxService中有如下语句:
class Service {
....没有找到login和getUserInfo的定义
}
export default Service
在app.js中有如下语句:
import WxService from 'helpers/WxService'
APP({
WxService: new WxService,
getUserInfo() {
return this.WxService.login()
.then(data => {
console.log(data)
return this.WxService.getUserInfo()
})
.then(data => {
console.log(data)
this.globalData.userInfo = data.userInfo
return this.globalData.userInfo
})
},
})
为什么可以执行this.WxService.login()和this.WxService.getUserInfo()?
this.WxService是微信封装的对象,对外是隐藏的。
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender //性别 0:未知、1:男、2:女
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
}
})
评论