vue+swiper 좌우 슬라이딩 테스트 문제 기능 구현
3043 단어 vueswiper좌우 로 미끄러지다
초기 코드
나 는 vue 와 swiper 를 썼 다.모든 문 제 는 대상 배열 입 니 다.v-for 를 통 해 렌 더 링 합 니 다.
<swiper ref="mySwiper" :options="swiperOptions">
<swiper-slide v-for="(item, index) in listData" :key="index">
<div class="question-box">
<div class="idx">- {{ index+1 }} -</div>
<div class="question">{{ item.question }}</div>
</div>
<button @click="goNext(index, 'a')" :class="item.answer=='a' ? 'active': ''"> </button>
<button @click="goNext(index, 'b')" :class="item.answer=='b' ? 'active': ''"> </button>
</swiper-slide>
</swiper>
처음에 저 는 모든 문제 의 answer 를 대상 에 저장 하고 단 추 를 눌 렀 을 때 answer 의 값 을 바 꾸 었 습 니 다.button 의 동적 class 는 값 이 바 뀌 면 배경 색 의 변 화 를 일 으 킬 수 있 습 니 다.js 부분:
goNext(index, answer) {
this.$set(this.listData[index], 'answer', answer)
this.swiper.slideNext(100)
},
문제점 을 발견 하 다테스트 결과 에 따 르 면 이렇게 클릭 이벤트 와 동적 스타일 을 서로 의존 하면 약 몇 백 밀리초 의 지연 을 초래 하여 slideNext()를 실행 할 수 있 고 직관 적 으로 느 낄 수 있 는 지연 이다.디 버 깅 을 통 해 지연 을 초래 하 는 두 가지 원인 을 발견 했다.
this.$set
배열 변경
에서 class
까지 중간 에 도 지연 이 있다.:class
을 제거 하고 원생 js 로 클릭 이벤트 에서 class 를 직접 수정 하 는 것 으로 바 꾸 겠 습 니 다.이렇게 두 걸음 내 려 오 니 확실히 지연 되 는 것 을 볼 수 없다.최 적 화 된 코드
html 부분
<button @click="goNext($event, index, 'a')"> </button>
<button @click="goNext($event, index, 'b')"> </button>
js 부분
goNext(e, index, answer) {
const element = e.target
const bro = element.parentNode.children
for (let i = 0; i < bro.length; i++) {
if (bro[i] !== element) {
bro[i].classList.remove("active")
}
}
element.classList.add('active')
this.answerMap[this.listData[index].question] = answer
this.swiper.slideNext(100)
},
테스트 결과:반 갑 습 니 다.slideNext()는 더 이상 육안 으로 볼 수 있 는 지연 이 없습니다.코드 를 적 게 쓰기 위해 자신 도 모 르 게 성능 을 희생 하 는 경우 도 있다.이번 실천 은 원생 JS 가 나 로 하여 금 여러 줄 의 코드 를 증가 시 켰 지만 가 져 온 성능 향상 도 매우 뚜렷 하 다.이번 최 적 화 를 통 해 Vue 소스 코드 를 잘 이해 하 는 사람 은 아마 최적화 점 을 바로 알 수 있 을 것 이 라 고 생각 합 니 다.나 는 비록 소스 코드 를 한 번 보 았 지만,여전히 깊이 이해 하지 못 했다.배 울 게 많 네요.
vue+swiper 가 좌우 로 미 끄 러 지 는 테스트 문제 기능 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 vue 좌우 로 미 끄 러 지 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.