最近用mpvue开发了一个家庭私人医生签约的小程序项目。记录总结一下,开发过程当中遇到的一些问题。html
==不少坑,尽可能别用==vue
item.jsonItem = JSON.stringify(item)
&& value = "item.jsonItem"
的方法去拿到item的json字符串对象。this.value = event.target.value
的方式会出现选不中的bug。经测试,定一个vue组件外部的变量value,再value = event.target.value
就不会出现bug。注意,有些必须加()包起来。例如,下面的 || 运算npm
<div :style="{background: 'url(' + (userInfo.avatar || wxuserInfo.avatarUrl) + ') no-repeat center / cover'}"> </div>
问题:npm run build不生成一些文件。因为mpvue-loader的版本更新了。把package.json的"mpvue-loader": "^1.0.13"
的“^”符号 去了,即"mpvue-loader": "1.0.13"
便可。若是有“^”号,npm install
的时候,会下载新的版本mpvue-loader。若是没有“^”,则下载的就是1.0.13版本的mpvue-loader。json
为了每次进入页面都获取最新的storage,须要在onShow下,每次获取最新的storage。例如:小程序
this.wxuserInfo = wx.getStorageSync('wxuserInfo') || {}
页面栈最多有十个page页面。若是超过十个page,不能再添加新的页面了。执行wx.navigateTo(url: 'xxx')
,无反应。测试
<!-- 用v-if出现bug,没法触发点击事件,因此用display代替 --> <!-- <div v-if="isShow" class="more" @click="onMore">查看更多(不可触发点击事件))</div> --> <div :style="{display: isShow @click="onMore">查看更多(可触发点击事件)</div>
本人使用v-show不起做用(可是别人好像能够,也是操蛋了...)。涉及到display:none;的操做,经过:style="display: xxx;"
去实现的。ui
<sign-cell v-if="!terminated" left="签约协议"> <template slot="right"> <!-- HACK: 若是不stop, 会出现点击事件执行了两次的bug --> <div class="badge-protol" @click.stop="onProtocol">查看</div> </template> </sign-cell>
bug:点击查看按钮,触发了两次onProtocol事件。
思考:在slot里面的html绑定的事件会出现触发两次点击事件的bug。使用.stop修饰符,便可解决。具体出现bug的缘由,不详。。。this