项目bug积累

echarts

echarts存在缓存问题,请求得到新数据后,更新图表,图表扔存在上一次的数据,存在合并现象。
可以先用clear():清空当前实例,会移除实例中所有的组件和图表。
后在setOption()中添加第二参数true,说明不与上次数据合并

项目bug积累_第1张图片
代码示例展示:
项目bug积累_第2张图片
有缓存效果的,不能使用先初始化后更新图表的方式,这样会报错,所以要直接初始化和数据更新存放在同一个方法里

vuex

项目中有存在多个地方使用同一数据的,比如账号状态,消息更新,以及认状态更改等等。
或者,修改需要同步响应的,建议使用vuex,而不是使用sessionStorage。但vuex页面刷新后,数据会变回初始化,而sessionStorage则不会。因此数据的缓存,可以用sessionStorage结合vuex实现。
vuex中的状态初始化时就取用sessionStorage中的数据
项目bug积累_第3张图片
在请求获得数据就通过commit调用mutations中的方法保存同时将数据存入state和sessionStorage。
在一些需要更新的数据,可以先在actions定义方法,然后再某个操作结束后,就通过dispatch调用dispatch中对应的方法,然后在调用mutations在存储数据。
在页面中使用数据是,先用computed来获得state中的状态,然后再用watch监视computed的数据,再赋值给响应的数据,可以实现响应。

文件下载(xlsx)

通过a标签实现。获取到后端返回的数据,再借助Blob来进行实现。Blob中的type要与后端设置的一致,然后创建a标签,通过URL.createObjectURL(blob)获取到URL,充当a标签的href值。a标签的download属性是对应文件名。然后用document.body.appendChild(link);将a标签追加到body中,再触发点击事件,达到文件下载目的。
若有打不开或者乱码的情况,看看type与后端是否一致,以及多与后端沟通。
在这里插入图片描述

你可能感兴趣的:(Vue,javascript,bug,前端)