最近有点闲,想起关注已久的<代码> mpvue> 代码写小程序,所以稍微肝了半个多月写了个<代码> github> 代码版的微信小程序,已上线。现在总结一下遇到的坑。
扫码体验,
项目地址:https://github.com/cheesekun/wx-github
可滚动视图区域。使用竖向滚动时,需要给& lt;滚动视图/在一个固定高度,通过wxs设置高度。
引用>小程序提供的<代码>滚动视图> 代码组件,想让他能滚动,就要给他提供一个固定的高度。
我们一般需求的是,上一块区域固定,下一块区域可滚动,我的处理方法是,拿到机型的可视高度,减去上一块固定区域的高度,动态赋值<代码>滚动视图> 代码最终高度。
//以搜索页为例//滚动区域高度=总高度——搜索框高度——标签高度 onLoad () { wx.getSystemInfo ({ 成功:(res)=比;{ 这一点。身高=res.windowHeight//获取机型可视高度 } }) 让查询=wx.createSelectorQuery ()//选择id query.select(“#搜索”).boundingClientRect () 查询exec (res=比;{ 让searchH=res [0]。高度//获取搜索框高度 这一点。身高=? searchH this.tabsH高度 }) }坑点:<代码> wx.createSelectorQuery() 代码>获取不了<代码>显示:没有> 代码的元素高度。
我的解决方法是:在<代码>趋势> 代码页获取到<代码> 代码>标签组件的高度,再存放到<代码> vuex> 代码中,给<代码>搜索> 代码页使用
小程序生命周期
当我们从一个页面①进入页面②时,我们一般在<代码> onLoad 代码>进行初始数据的获取,
从页面②返回到页面①时,若两个页面是不同的页面,如①为页面/信息,
②为页面/回购,那没问题,①页面<代码> unOnLoad> 代码,②页面<代码>昂秀代码>。
但是若①为页面/信息# 63;用户=,②为页面/信息# 63;用户=b,那gg了,从页面②返回到页面①,页面①的数据会变成页面②的数据
为了避免这种情况,我一开始使用<代码>昂秀代码>代替<代码> onLoad> 代码,也就是在<代码>昂秀> 代码的时候获取页面的初始数据。但是这个情况就有点可怕了,我们知道<代码>昂秀> 代码很多情况都会触发到,切换前后台,从一个页面返回到另一个,都会触发<代码>昂秀> 代码,这就导致会触发很多不必要的请求,而且用户体验极差。
可我很多需求就是类似从①为页面/信息# 63;用户=到②为页面/信息# 63;用户=b,因此曲线救国想出用<代码> vuex 代码>维护有相关需求页面的路由栈。
页面<代码> onLoad> 代码的时候,推入查询参数到栈中,<代码>昂秀> 代码时,若当前页面的参数和栈中最后一个元素相同,则不重新加载数据。当页面被销毁,则在<代码> onUnload> 代码中把相应的页面栈推出。这样就可以避免很多无谓的<代码>昂秀> 代码请求。
onLoad () { this.reset () const选项=getQuery () 用户=options.login//vuex this.reposStack.push(选项) this.getRepos () },>/* * *获取当前路径参数 *不用mpvue提供的根。mp.query美元 *因为其进入同一页面,参数不会变化 */导出功能getQuery () {/*获取当前路由栈数组*/const页面=getCurrentPages () const currentPage=页面(页面。长度- 1) const选项=currentPage.options 返回选项 }
前面几个问题是我初次使用<代码> mpvue 代码>开发小程序遇到的最大的坑了吧。(好久没有写东西了,写得好烂)。不过确实使用<代码> mpvue 代码>开发小程序,能组件化,支持<代码> npm> 代码,比原生开发舒服很多。体验还是很好的。
小程序现在是真的太火了。感觉是个前端都要去玩一下。
再次推一下项目地址,有兴趣的朋友可以参考一下.北京://github.com/cheesekun/wx-github
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
详解使用mpvue开发github小程序总结