使用mpvue开发github小程序总结
最近有点闲,想起关注已久的? 项目地址、?github.com/cheesekun/w… mina坑scroll-view 高度可滚动视图区域。 使用竖向滚动时,需要给? 小程序提供的? 我们一般需求是,上一块区域固定,下一块区域可滚动,我的处理方法是,拿到机型的可视高度,减去上一块固定区域的高度,动态赋值? // 以 search 页为例
// 滚动区域高度 = 总高度 - 搜索框高度 - tabs 高度
onLoad () {
wx.getSystemInfo({
success: (res) => {
this.height = res.windowHeight // 获取机型可视高度
}
})
let query = wx.createSelectorQuery()
// 选择id
query.select('#search').boundingClientRect()
query.exec(res => {
let searchH = res[0].height // 获取search框高度
this.height = this.height - searchH - this.tabsH
})
}
复制代码
坑点:? 我的解决方法是:在? 生命周期(同一page携带不同参数)小程序生命周期 当我们从一个页面①进入页面②时,我们一般在? 从页面②返回到页面①时,若两个页面是不同的page,如?①为page/info?, ②为page/repo,那没问题,①页面? 但是若?①为page/info?user=a?,?②为page/info?user=b?,那gg了,从页面②返回到页面①,页面①的数据会变成页面②的数据 为了避免这种情况,我一开始使用? 可我很多需求就是类似从?①为page/info?user=a?到?②为page/info?user=b?,因此曲线救国想出用? 页面? onLoad () {
this.reset()
const options = getQuery()
user = options.login
// vuex
this.reposStack.push(options)
this.getRepos()
},onShow () {
const options = getQuery()
let reposStack = JSON.parse(JSON.stringify(this.reposStack))
let len = reposStack.length
let endStack = reposStack[len - 1]
if (JSON.stringify(endStack) === JSON.stringify(options)) {
return
}
this.reset()
user = options.login
this.reposStack.slice(0,-1)
}
复制代码
mpvue坑query参数
如果以? 但是我们知道,当我们从当前页返回到上一页时,上一页并不会执行? 假设当前页和上一页是同个? 上一页的? 举例:①page/info?a=1 => ②page/info?b=2当我从②返回到①时,①的? 我猜? 为了避免麻烦,我直接使用了小程序的api? getCurrentPages()?函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面。 后记 |