VantUI 팝 업 창 이 꺼 지지 않 거나 겹 치지 않 는 문 제 를 해결 합 니 다.
\#\#\#\#구성 요소 PopupTime.vue
vant 홈 페이지 의 popup+시간 선택 기 를 구성 요소 로 추출 합 니 다:
popup1show:true 즉 팝 업 창 표시
<template>
<div class="PopupTime">
<van-popup v-model="popup1show" position="bottom" :overlay="true" @click-overlay="clickOverlay">
<van-datetime-picker show-toolbar
:title="popupTitle.popupName"
v-model="currentDate"
type="datetime"
@cancel="onCancel" @confirm="onConfirm" class="font14"/>
</van-popup>
</div>
</template>
<script type="text/ecmascript-6">
export default {
props:{
popupTitle:Object,
},
data() {
return {
popup1show: true,
currentDate: new Date(),
};
},
methods:{
clickOverlay() {
this.onCancel();
},
onCancel() {},
onConfirm(value, index) {},
}
</script>
test.vue 에서 이 구성 요 소 를 호출 합 니 다.
<popup-time
v-show="isShowDelay"
:popupTitle="popupDelayT"
@PopupDelayTime="fromDelayT">
</popup-time>
//import PopupTime , components
별 문제 가 없 는 것 처럼 보 였 으 나 isShowdlay 가 rue 일 때 팝 업 창 은 몽 층 이 없 는 것 으로 나 타 났 고 두 번 째 클릭 으로 는 켜 지지 않 았 다.문제 해결
vant 의 문제 인 줄 알 고 한참 을 찾 았 는데 v-show 의 문제 로 v-if 로 바 꾸 면 문제 가 없습니다.
<popup-time
v-if="isShowDelay"
:popupTitle="popupDelayT"
@PopupDelayTime="fromDelayT">
</popup-time>
//import PopupTime , components
기괴 한 질문,홈 페이지 에 가서 한 번 보 세 요:v-if vs v-show
v-if 는'진짜'조건 렌 더 링 입 니 다.전환 과정 에서 조건 블록 안의 이벤트 모니터 와 하위 구성 요소 가 적당 하 게 소각 되 고 재 구축 되 는 것 을 확보 하기 때 문 입 니 다.
v-if 도 타성 이다.초기 렌 더 링 시 조건 이 가짜 라면 아무것도 하지 않 는 다―조건 이 처음으로 진짜 로 변 할 때 까지 조건 블록 을 렌 더 링 하기 시작한다.
이에 비해 v-show 는 훨씬 간단 합 니 다.초기 조건 이 무엇이든 요 소 는 항상 렌 더 링 되 고 DOM 에 보 존 됩 니 다.v-show 요 소 를 간단하게 전환 하 는 CSS 속성 display
일반적으로 v-if 는 더 높 은 전환 비용 이 있 고 v-show 는 더 높 은 초기 렌 더 링 비용 이 있 습 니 다.따라서 매우 빈번 한 전환 이 필요 하 다 면 v-show 를 사용 하 는 것 이 좋 습 니 다.실행 할 때 조건 이 바 뀌 지 않 으 면 v-if 를 사용 하 는 것 이 좋 습 니 다.
응...아니면 이 문제 가 어떻게 발생 했 는 지 모 르 겠 습 니까?
보충 지식:vant-----Picker 와 Popup 선택 기와 마스크 의 완벽 한 결합
초보 자 들 은 이런 문제 에 부 딪 힌 적 이 있 을 것 이다.아래 를 쓰 고 싶 고,또 마스크 를 쓰 고 싶다.두 개 를 합 쳐 쓰 고 커버 높이:100%,width:100%,z-index:999 등 을 써 서 정 하 세 요.
번 거 롭 고 번 거 로 운 체험 감 이 꼭 있 는 것 은 아니다.
vant 의 picker 와 popup 을 집합 하여 편리 하고 실 용적 입 니 다.
1.main.js 에 도입
import { Popup } from 'vant';
Vue.use(Popup);
import { Picker } from 'vant';
Vue.use(Picker);
2.
<van-popup v-model="show" position="bottom" :overlay="true">
<van-picker show-toolbar title=" " :columns="columns" @cancel="onCancel" @confirm="onConfirm" @change="onChange" />
</van-popup>
position:top or bottom or center 를 스스로 정의 할 수 있 습 니 다.물론 보통 bottom 입 니 다.:overlay:false or true 개인 적 인 요구 사항 보기
title:당신 의 요구 에 따라 정의
js:
효과 그림:
이상 의 열 자 는 모두 소생 이 스스로 실천 하 는 것 이 니 여러분 께 참고 가 되 기 를 바 랍 니 다.여러분 들 도 우 리 를 많이 지지 해 주시 기 바 랍 니 다.