美文网首页
总结微信vue单页应用开发的一些坑

总结微信vue单页应用开发的一些坑

作者: 心如止水_1c5b | 来源:发表于2017-08-31 16:09 被阅读0次

    最近在做一个微信上的移动应用,踩了不少坑,做了以下的总结:


    1.微信分享功能,安卓和iPhone存在着很多而差异。一开始调用微信分享功能需要引入jssdk,在入口文件index.js中引入了http://res.wx.qq.com/open/js/jweixin-1.0.0.js  js文件,然后出现了的问题是安卓可以进分享,但是iPhone却总是出现invalid signature,后来发现是因为iOS 9.0需要引入https://res.wx.qq.com/open/js/jweixin-1.0.0.js,否则会分享失败。


    2.iOS overflow:auto滚动不流畅问题。这个问题一般加上一句-webkit-overflow-scrolling : touch;就可以就解决问题,但是当有已导航栏用了fixed或者absolute定位的,定位就会失效,这是需要给overflow:auto的标签加上一个绝对定位,如position:fixed或者position:absolute。


    3.有关于css选择器的坑:如果在html和body选择器中写了overflow:auto,对子元素div的滚动条的scrolltop值就总会为0,这和浏览器的兼容不同,这个神奇的坑花了我很长的时间才解决。


    4.做微信支付接口jsapi调用的时候,支付目录的配置很有讲究,Vue项目如果没有改变路由的mode的默认值hash,这时#的存在就会是支付目录的配置失败,这是需要更改mode的模式,变为history。


    5.。引入了百度地图API后,在微信开发者工具上面的定位和手机上定位差距很大,竟然有十多公里,这个让我一直以为是百度定位不准确,还试过换微新jssdk的定位,到头却发现是因为浏览器定位不准确导致的,只要代码在手机上跑起来,定位就会很精确。


    6.Vue的生命钩子:

    1.mounted钩子就是等dom结构渲染完成后就马上执行。

    2.updated钩子里面的方法是每当dom结构发生改变的时候,就会触发该钩子里面的方法。但是该钩子十分消耗内存,慎用。

    3.created:dom树还没渲染,就会触发该钩子里面的函数。

    4.computed:当数据发生改变时就会触发函数。


    7.Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343.

    上面的警告是由于定时器引起的dom渲染延迟导致事件触发无效,但是没有找到很好的解决方法。


    8.上传文件的坑,或者说是上传图片,用formdata通过ajax发送给后台,但是图片太大的话node会报一个错误request entity too large,这是node上传文件限制的原因,这个需要在node加上一个上传文件的限制//app.use(express.limit(100000000))//app.use(bodyParser({limit : "5000kb"}));//app.use(json({limit: '5000kb'}));但是一般体验文件太大的话用户体验不好,又消耗流量,最好还是使用canvas压缩上传。














    相关文章

      网友评论

          本文标题:总结微信vue单页应用开发的一些坑

          本文链接:https://www.haomeiwen.com/subject/yfuurxtx.html