vue가 윈도우에resize 이벤트에 부딪힌 구덩이를 추가하고 제거하는 것을 해결합니다
// ,
mounted(){
window.addEventListener('resize',()=>{
' '
});
},
beforeDestroy() {
window.removeEventListener("resize");
}
나중에 관련 자료를 찾아보니 다음과 같은 방법으로 감청을 제거할 수 있다
methods: {
listenResize(){
' '
}
},
mounted(){
window.addEventListener('resize',this.listenResize);
},
beforeDestroy() {
window.removeEventListener("resize",this.listenResize);
}
보충 지식: vue 감청 화면 변화 & 감청 이벤트 제거작은 구덩이를 한 번 기억해라.
echarts를 사용하려면 화면에 적응해야 하기 때문에 vue에서 이벤트를 감청하고 성능 문제를 고려하여lodash 라이브러리의 debounce로 패키지를 만들었습니다.코드는 다음과 같습니다.
mounted() {
window.addEventListener('resize', debounce(this.resize,200), true)
},
beforeDestroy() {
window.removeEventListener('resize', this.resize, true)
},
methods: {
resize() {
this.radarChart.resize()
}
}
그러나 다른 페이지로 전환할 때 화면이 바뀔 때resize 이벤트를 촉발하는 것을 발견했다. 이전에 비슷한 기능을 썼기 때문에 코드는 문제가 없지만 촉발할 수 있다는 것을 발견했다. 마음속으로도 이상하다. 연구한 결과addEventListener의 방법에 debounce를 추가하지 않으면 된다.다음과 같습니다.
mounted() {
window.addEventListener('resize', this.resize, true)
},
beforeDestroy() {
window.removeEventListener('resize', this.resize, true)
},
methods: {
resize: debounce(function() {
this.radarChart.resize()
}, 300),
}
debounce는 메서드에 넣어야 합니다.또한 내부 함수체는 화살표 함수를 사용할 수 없습니다. 그렇지 않으면thisundefined의 문제를 보고합니다.이상의 해결 vue가 윈도우에resize 사건을 추가하고 제거하는 데 부딪힌 구덩이는 바로 편집자가 여러분에게 공유한 모든 내용입니다. 참고 부탁드리고 저희를 많이 사랑해 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.