小程序传参
小程序传参与vue传参不同,小程序如果直接在方法后面加(),会报警告,且没有任何效果。
小程序如果想在页面中传参,需要自定义属性:
<view class="tab-con" bindtap="onTap" data-index="1">
使用:
onTap(e) {
console.log('微信小程序传参', e.currentTarget.dataset['index'])
}
小程序组件子页面向父页面传参
小程序组件引入需要在页面对应的json文件中引入
子页面:
onTap() {
this.triggerEvent('linkBtn', 'sss')
}
父页面:
<tab id="tc" str="/static/mine-img/password.png" info="修改密码" doTag="img" bind:linkBtn="_linkBtn"></tab>
_linkBtn(e) {
console.log(e.detail)
console.log(this.tab)
}
小程序更改data中的值
小程序无法直接使用this.eyeShow = !this.eyeShow的语法
需要使用 this.setData ({
})更改data的值
eyeBtn() {
this.setData({
eyeShow: !this.data.eyeShow
})
}
小程序自定义导航栏,获取状态栏高度
通过wx.getSystemInfoSync()获取状态栏高度并给一个盒子对应的高度
try {
const res = wx.getSystemInfoSync()
this.setData({
status_hei: 'height:' + res.statusBarHeight + 'px'
})
} catch (e) {
// Do something when catch error
}
小程序动态设置类名
小程序设置类名不需要:class的样式,而是通过mastache语法可以设置,与固定样式之间用空格隔开即可
<view class="new {{active_index == 0 ? 'active' : ''}}" bindtap="activeBtn" data-index = '0'>
最新
</view>
小程序调用模板内部方法
小程序可调用模板内部方法
onReady() {
this.timeDate = this.selectComponent("#time")
},
addBtn() {
this.timeDate.show()
}
小程序阻止冒泡、默认事件
有时需求为点击盒子,但不让外层盒子的事件触发。这时可能需要阻止默认事件触发。将bindtap换成catchtap即可
<view class="show" catchtap="choiceBtn">