1.mpvue(github地址请参见)是一个使用Vue.js开发小程序的前端框架。框架基于Vue.js核心,mpvue修改了Vue.js的runtime和compiler实现,使其可以运行在小程序环境中,从而为小程序开发引入了整套Vue.js开发体验。
2.比如在mpvue中,slot(插槽)中的内容不能动态的渲染,那我们可以放弃使用slot内使用动态数据。该问题在github中有多人反应。
3.再比如在mpvue中,自定义指令会直接导致编译报错,那么我们可以放弃使用自定义指令。该问题在github中也有多人反应。
4.但是今天的问题实在太严重,我一定要吐槽一下。
5.bug现象
6.我们在开发过程中,发现在某种情况下,页面UI层的更新时机全部错乱。即数据变更后,只有在下次的onShow生命周期里有体现(有种“慢一拍”的感觉),整体的感觉就是页面的展示和交互完全瘫痪。
7.bug调查
8.我们花了整整一天的时间调查,最后发现问题是在自定义组件上动态为v-if绑定值赋值上。
9.将代码精简到十几行就可以复现bug。
10.bug再现
11.记住,这是一个mpvue项目。我在src/pages/目录下新建一个test页面,对应的index.vue文件的代码如下,逻辑很简单,就是利用v-if控制一个组件的显示:
templatetestv-if="show"/test/templatescriptimporttestfrom'@/components/posterTest.vue'exportdefault{data(){return{show:true}},onShow(){this.show=false//在onShow生命周期里,先将v-if绑定值置位false,2秒再置位truesetTimeout(()={this.show=true},2000)},components:{test}}/script12.其中引入了posterTest组件。为了调查bug,我将多余的操作处理全部去掉,只有一张图片,它的代码如下:
templatelang="html"divclass="poster"imgsrc="https://interactive-examples.mdn.mozilla.net/media/examples/firefox-logo.svg"alt="小程序"/div/templatescriptexportdefault{}/script13.这个页面只要一加载,2秒后控制台就会报下面的错误。
14.十几行代码就可以让你的微信小程序挂掉而只要报了这个错误,其他页面也跟着挂了。就像前面提到的一样,结果是灾难性的——页面都挂掉了,双向绑定的更新总像慢了一拍。
15.找到报错的代码,上面还有了一条有意添加的注释(也是vue源码的)
16.十几行代码就可以让你的微信小程序挂掉所以我怀疑是mpvue在调度上存在问题。
17.解决方法
18.mpvue还是要用的,但是以后不能再用v-if来操作组件的显示了,乖乖用v-show吧。但是话说回来,vue这样的操作可是一点毛病没有的。
19.总结
20.作为框架,作为一个“轮子”,我觉得不应该有这样“后果严重”的bug出现。再退一步说,一个页面的bug能导致到整个应用“瘫痪”,也是很恐怖的。
21.还是要感谢mpvue为我们带来的种种方便。
22.十几行代码就可以让你的微信小程序挂掉
排名前十的小程序-十几行代码就可以让你的微信小程序挂掉-小程序排名
浏览量:1499
时间:
来源:java中高端架构师
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。












