【mpvue】三

使用了快1个月,陆续整理发现的坑

1、pageA-pageB-pageA-pageC

如果以这种顺序,大概理解成,列表进详情B, 返回列表进入详情C,那么进入详情C的时候,会因为缓存,先展现详情B的内容。解决方案查看了官方issue。如下:

  onLoad() {
    Object.assign(this.$data, this.$options.data());
  },

2、之前有说过,因为缓存的原因,所以mounted一次生命周期只会加载一次,所以再一些需要数据刷新的页面,推荐使用onShow()来做。

但是会发现一个问题,小程序本身有缓存机制,就是记录上一次的浏览记录。如果onShow的话,会导致数据刷新,但是记录的缓存还在。

所以,在一些不需要随时刷新的列表上,依然使用mounted钩子。

3、由于本次项目中会使用到富文本。官方本身的rich-text,其实我觉得还好,也没那么差劲,mpvue官方说是不支持v-html,但是我用了以后,发现会自动转换成rich-text。效果其实还可以的。如果追求极致,可以去下载一个mpvue-wxparse。github上有。本次也就是使用了该组件。

https://github.com/qizhenshuai/qs-mpvue-wxparse 使用方法上面也有介绍。

重点:!!!!!!!

一定不要忘记引入wxparse.css!!!一定不要忘记引入wxparse.css!!!一定不要忘记引入wxparse.css!!!

因为引入了组件以后,确实可以编译了,但是在一些字体加粗《strong》标签,以及span等行内标签会被统一编译成《view》,变成块级元素。

4、关于页面打开会先展示出静态资源,然后再展示接口请求的数据,此问题会造成一定的用户体验不适。

比如一个详情页面。图片和介绍等内容是接口请求出来的,但是页面上的一些button,点赞等收藏元素是页面静态资源。进入页面后在接口请求数据完之前,静态资源会先展示出来。解决该问题的方法我是在最外层元素,使用v-if="isData",接口请求好数据以后设置为true。

5、关于在一些机型上面,会发现一行文字的头上好像被切除了1px的样子。具体原因排查不出来,解决方案是给该盒子padding:1px 0;。

6、另外在开发webSocket中发现一个问题。H5中的webSocket,链接以后会有一个状态码,根据状态码是可以判断出链接是open状态,还是close,或者是closing状态等。官方wx.connectSocket()

wx.connectSocket({
XXX
success(res){
console.log(res)
res.socketTaskId????????????
//刚开始,也以为这个res.socketTaskId就是状态码,因为在模拟器上的效果和h5的状态码很像。
//后来我根据状态码写完逻辑以后,真机一上就GG了。
//翻阅官方文档,居然没有这个解释。。。。。
}
})

暂时就这么多吧,陆续会更新

猜你喜欢

转载自my.oschina.net/u/3883810/blog/2056244