1、当遇到切换页面导致BScroll滑动失效时。
多半是因为dom的重新渲染导致,BScroll的滑动高度为0。或者组件v-show从false->true,而BScroll未计算高度导致。
最好的办法就是设置侦听器,对前后改变的数值进行侦听,并因此刷新betterScroll组件。
2、点击事件冒泡问题。
情况一:比如蒙层设定了@click=“hide”,但是当点击子层的任何位置,均会触发蒙层的@click事件,是因为子层也监听到了鼠标的click事件冒泡到蒙层。
情况二:组件的click事件会冒泡到父组件,因为本质上组件还是被包裹在父层内。故冒泡。
解决办法: 在蒙层前一层阻止冒泡。(注:不能设置蒙层层级阻止冒泡,蒙层阻止的是传播,而不是当前不接收。),或者组件的包裹层设置@click.stop阻止冒泡到父组件。
<div class="playlist" v-show="showFlag" @click="hide">
<div class="list-wrapper" @click.stop>
<div class="list-header">
</div>
<div class="list-content">
</div>
<div class="list-operate">
</div>
</div>
</div>
3、transition-group内置一个v-move检测动画,触发代码如下。
.item
&.list-leave-active
display: none
&.list-move
transition: transform .5s
是不是认为我写错了,active内不是transition吗?
不是的,这就是vue提供的v-move动画的写法,active必须写display:none,才会被执行。
死记硬背吧。特效适合图片的自动排版,非常优雅。
4、当BScroll的v-show为false时, BScroll已失效。不能调用方法
5、自己构造的类比如Song类,当类存储入localstorage时,就变成了对象。
类和对象是不一样的,就是说,如果你从缓存中读取一个类,这个类其实已经变成了对象,不具备类的方法。需要重新 new Song(song) 转换成类,才能具备类的方法。
对象:{…}
类:Song {…}