废话不多说,直接上代码
myChart.value?.resize();
myChart.value.clear()
myChart.value.setOption(option);
清空画布,重新赋值就可以了
别忘了防抖
//防抖
const init = ()=>{
let timer:number|null
return function (){
if(timer) clearTimeout(timer)
timer = window.setTimeout(()=>{
myChart.value?.resize();
myChart.value.clear()
myChart.value.setOption(option);
timer = null
},50)
}
}
onMounted(() => {
window.addEventListener('resize',init())
})
onUnmounted(()=>{
window.removeEventListener('resize',init())
})
有的小伙伴可能喜欢使用节流的方式(个人觉得,会造成大量的内存消耗,重复的渲染,但是效果会好一些,看个人 吧)
//节流
const throttle = (fn:Function)=>{
let timer:any;
return function (){
if(!timer){
timer = setTimeout(()=>{
fn()
timer = null
},100)
}
}
}