其实性能优化呢是个非常大的话题,只是自己在工作中确实会碰到一下,页面加载慢呢,一部分是逻辑问题,一部分是网络问题,还有就是确实数据太多,dom元素太多了。
1,在网上搜索vue长列表渲染,推荐的方案有Object.freeze() ,后来呢,看到黄轶大神的解答,就是说可以把那些只用于展示的,并且比较长的列表数据,在crated钩子中绑定到this身上,不一定需要写在data里面,
2,在被复用的组件中,通过eventbus发送的消息,需要在beforeDestory钩子中解绑,解绑的方法也比较简单,看例子:
<script>
methods:{
test(){
this.EventBus.$emit('refresh');
}
}
beforeDestory(){
this.EventBus.$off('refresh'); //取消对这个事件的监听
}
</script>
如果不取消,那么这个组件被激活几次,那么事件监听中的回调函数就会执行几次,比如,A,B页面都使用了这个组件,在A,B组件之前切换时,组件中监听的事件会累加,严重影响页面性能,所以这里的取消监听是非常有必要的
当实践到好的方法的时候在过来添加,上面的方法还需要实际验证一下。后面继续补充吧
来源:oschina
链接:https://my.oschina.net/u/4410805/blog/3391489