Vue에서 모달 대화 상자 구성 요소를 구현하는 단계에 대한 자세한 설명
이번에는 Vue에서 모달 대화 상자 구성 요소를 구현하는 단계에 대해 자세히 설명하겠습니다. Vue에서 모달 대화 상자 구성 요소를 구현하기 위한 노트는 무엇입니까?
앞에 작성
대화 상자는 매우 일반적으로 사용되는 구성 요소로 여러 곳에 사용됩니다. 일반적으로 내장된 경고를 사용하여 대화 상자를 팝업할 수 있지만, 그렇다면 어떻게 해야 합니까? 디자인된 그림이므로 대화 상자를 직접 작성해야 하고, 여러 곳에서 사용하는 경우에는 공통 컴포넌트 형태로 작성하여 필요한 곳 간 참조하는 것이 필요합니다.
이제 대화 상자 구성 요소를 구현해 보겠습니다. 이전 습관에 따라 구현 렌더링을 살펴보겠습니다
1 먼저 템플릿을 통해 구성 요소를 정의하고
<template id="dialog"> <p class="dialog"> <p class="dialog_mask"></p> <p class="dialog_container"> <p class="dialog_content"> <p class="dialog_content_top">提示内容</p> <p class="dialog_btn"> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="close">确定</a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="close">取消</a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="login">去登录</a> </p> </p> </p> </p> </template>
해당 대화 스타일을 추가합니다.
/*对话框style*/ .dialog{ } .dialog_mask{ position: fixed; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); } .dialog_container{ background: #fff; width: 300px; height: 120px; position: relative; border-radius: 10px; margin: 0 auto; } .dialog_content{ text-align: center; padding-top: 30px; } .dialog_btn{ margin-top: 20px; } .dialog_btn a{ background: yellow; padding: 2px 30px; border-radius: 5px; color: #fff; text-decoration: none; width: 50px; display: inline-block; } .dialog_btn a:nth-child(2){ margin-left: 20px; }
2. Vue.comComponent를 사용하여 이 구성 요소를 v-dialog로 호출한 다음
Vue.component('v-dialog', { template: '#dialog', data:function(){ return { } }, methods:{ }, created:function(){ } })
3 템플릿을 통해 이 구성 요소를 지정합니다. v를 필요한 곳에 전달합니다. 이 컴포넌트를 참조하세요
<v-dialog></v-dialog>
<v-dialog></v-dialog>
创建一个vue组件步骤大致就是这样,但是,父组件和子组件该怎么进行通信呢?
这里主要使用props传递数据到子组件
修改如下上面的代码,添加props属性
Vue.component('v-dialog', { template: '#dialog', props:['dialogShow','msg'], data:function(){ return { } }, methods:{ }, created:function(){ } })
可以看到我们是通过字符串数组来定义prop的,除此之外我们还可以用对象的形式来定义prop,用来为组件的 prop 指定验证规则,如果类型错误,在vue中会有警告,其中 type的值可以是这些:String Number Boolean Function Object Array Symbol
props: { name: String, showDialog: { type: Boolean, default: false } }
在组件模板中通过 v-if="showDialog"
判断是否显示或隐藏对话框,通过 v-text="msg"
绑定对话框提示内容,
v-if="type==1"用于判断对话框类型 ,显示相应的按钮,代码如下:
<template id="dialog"> <p class="dialog" v-if="showDialog"> <p class="dialog_mask"></p> <p class="dialog_container"> <p class="dialog_content"> <p class="dialog_content_top" v-text="msg">提示内容</p> <p class="dialog_btn"> <a v-if="type==1" href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="close">确定</a> <a v-if="type==2" href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="close">取消</a> <a v-if="type==2" href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn" @click="login">去登录</a> </p> </p> </p> </p> </template>
在引用组件的地方添加 :show-dialog="showDialog" :msg="msg" :type="type"
这几个属性,将其值传递给对话框组件
<v-dialog :show-dialog="showDialog" :msg="msg" :type="type"></v-dialog>
需要注意的是showDialog在组件中需要写成show-dialog这种形式,不然会获取不到数据
我们在data中定义这些属性
data: { msg:'', showDialog:false, type:1,// 提示类型 1单按钮提示框 2双按钮提示框 },
然后,我们在按钮点击提交的时候触发弹出对话框事件
submit:function(){ //弹出对话框组件 if(!this.isLogin){//未登录 this.msg = "请先去登录再领取金额"; this.showDialog = !this.showDialog; this.type = 2; return; } if(this.amount){ if(this.amount<1 || this.amount>1000){ this.msg = "输入金额不能低于1元大于1000"; this.showDialog = !this.showDialog; this.type = 1; }else{ this.msg = "领取成功,请在账户中心查看"; this.showDialog = !this.showDialog; this.type = 1; } }else{ this.msg = "领取金额不能为空"; this.showDialog = !this.showDialog; this.type = 1; } }
这样,我们就能弹出对话框组件了,通过msg设置不同的提示消息
那么,我们该怎么关闭这个对话框呢 ,这里就涉及到子组件需要向父组件传递信息了
主要通过$emit来触发父类事件,如:this.$emit('close-dialog');
然后在父类通过v-on来监听子类触发的事件,v-on:close-dialog="closeDialog"
,也可简写写成@close-dialog="closeDialog"
vue 컴포넌트를 생성하는 단계는 대략 이러하지만 상위 컴포넌트와 하위 컴포넌트를 어떻게 진행해야 할까요? 컴포넌트 통신은 어떻습니까?
여기에서는 주로 props를 사용하여 하위 컴포넌트에 데이터를 전달합니다
위 코드를 다음과 같이 수정하고 props 속성을 추가합니다
<v-dialog :show-dialog="showDialog" :msg="msg" :type="type" @close-dialog="closeDialog"></v-dialog>
문자열 배열을 통해 props를 정의하는 것을 볼 수 있습니다. 소품을 정의하려면 유효성 검사 규칙
을 지정하는 데 사용됩니다. 유형이 잘못된 경우 vue에 경고가 표시되며 유형 값은 다음과 같습니다. 문자열 숫자 부울 함수 객체 배열 기호closeDialog:function(){//关闭对话框 this.showDialog = false; }
v-if="를 사용하세요. showDialog"
대화 상자를 표시할지 숨길지 결정하려면 v-text="msg"
, v-if="type==1을 통해 대화 상자 프롬프트 콘텐츠를 바인딩하세요. "는 대화 상자 유형을 결정하고 해당 버튼을 표시하는 데 사용됩니다. 코드는 다음과 같습니다. rrreee
Add:show-dialog="showDialog" :msg="msg" :type="type" code> 를 참조하고 해당 값을 대화 상자 구성 요소에 전달합니다 rrreee
showDialog는 구성 요소에서 show-dialog 형식으로 작성해야 합니다. 그렇지 않으면 데이터를 얻을 수 없습니다우리는 데이터에 이러한 속성을 정의합니다rrreee
그런 다음 Box 이벤트를 제출하기 위해 버튼을 클릭하면 팝업 대화 상자가 트리거됩니다
rrreee이 방법으로 대화 상자 구성 요소를 팝업하고 msg를 통해 다른 프롬프트 메시지를 설정할 수 있습니다. , 이 대화 상자를 어떻게 닫나요? 여기에는 상위 구성 요소에 정보를 전달해야 하는 하위 구성 요소가 포함됩니다
주로 $emit를 통해 다음과 같은 상위 클래스 이벤트를 트리거합니다. this.$emit('close-dialog') ;
그런 다음 상위 클래스에서 v-on을 사용하여 하위 클래스인 v-on:close-dialog="closeDialog"
에 의해 트리거된 이벤트를 모니터링합니다. 로 축약할 수도 있습니다. @close-dialog="closeDialog"
🎜🎜코드는 다음과 같습니다.🎜🎜v-dialog 태그에 추가 @close-dialog="closeDialog"는 하위 구성 요소에 의해 트리거된 이벤트를 수신합니다🎜rrreee🎜 그런 다음 closeDialog 함수를 정의하여 showDialog 🎜rrreee🎜의 상태를 수정합니다. 이런 식으로 청취 함수 closeDialog를 close-dialog🎜🎜 형식으로 작성해야 한다는 점에 유의하는 것도 중요합니다. 위에서는 방금 대화 상자를 구현했습니다. box component🎜🎜이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요! 🎜🎜추천 도서: 🎜🎜🎜ES6에서 전체 화면 스크롤 플러그인을 구현하는 단계에 대한 자세한 설명🎜🎜🎜🎜🎜nodejs 로그 모듈 winston 사용 방법 요약🎜🎜🎜
위 내용은 Vue에서 모달 대화 상자 구성 요소를 구현하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

iPhone의 기본 지도는 Apple의 독점 위치 정보 제공업체인 지도입니다. 지도가 점점 좋아지고 있지만 미국 이외의 지역에서는 잘 작동하지 않습니다. Google 지도와 비교하면 아무것도 제공할 수 없습니다. 이 기사에서는 Google 지도를 사용하여 iPhone의 기본 지도로 만드는 실행 가능한 단계에 대해 설명합니다. iPhone에서 Google 지도를 기본 지도로 설정하는 방법 Google 지도를 휴대전화의 기본 지도 앱으로 설정하는 것은 생각보다 쉽습니다. 아래 단계를 따르십시오. – 전제 조건 단계 – 휴대폰에 Gmail이 설치되어 있어야 합니다. 1단계 – AppStore를 엽니다. 2단계 – “Gmail”을 검색하세요. 3단계 - Gmail 앱 옆을 클릭하세요.

WeChat은 더 나은 사용자 경험을 제공하기 위해 지속적으로 새 버전을 출시하는 중국의 소셜 미디어 플랫폼 중 하나입니다. WeChat을 최신 버전으로 업그레이드하는 것은 가족 및 동료와 연락을 유지하고 친구와 연락을 유지하며 최신 개발 상황을 파악하는 데 매우 중요합니다. 1. 최신 버전의 기능과 개선 사항을 이해합니다. WeChat을 업그레이드하기 전에 최신 버전의 기능과 개선 사항을 이해하는 것이 매우 중요합니다. 성능 개선 및 버그 수정에 대해서는 WeChat 공식 웹사이트나 앱 스토어에서 업데이트 노트를 확인하여 새 버전에서 제공되는 다양한 새로운 기능에 대해 알아볼 수 있습니다. 2. 현재 WeChat 버전 확인 WeChat을 업그레이드하기 전에 현재 휴대폰에 설치된 WeChat 버전을 확인해야 합니다. WeChat 애플리케이션 "나"를 클릭하여 연 다음 "정보" 메뉴를 선택하면 현재 WeChat 버전 번호를 볼 수 있습니다. 3. 앱을 엽니다

AppleID를 사용하여 iTunesStore에 로그인하면 "이 AppleID는 iTunesStore에서 사용되지 않았습니다"라는 오류가 화면에 표시될 수 있습니다. 걱정할 오류 메시지는 없습니다. 다음 솔루션 세트에 따라 문제를 해결할 수 있습니다. 수정 1 – 배송 주소 변경 iTunes Store에 이 메시지가 나타나는 주된 이유는 AppleID 프로필에 올바른 주소가 없기 때문입니다. 1단계 – 먼저 iPhone에서 iPhone 설정을 엽니다. 2단계 – AppleID는 다른 모든 설정보다 우선해야 합니다. 그러니 열어보세요. 3단계 – 거기에서 “결제 및 배송” 옵션을 엽니다. 4단계 – Face ID를 사용하여 액세스 권한을 확인하세요. 단계

iPhone의 Shazam 앱에 문제가 있나요? Shazam은 노래를 듣고 노래를 찾는 데 도움을 줍니다. 하지만 Shazam이 제대로 작동하지 않거나 노래를 인식하지 못하는 경우 수동으로 문제를 해결해야 합니다. Shazam 앱을 복구하는 데 시간이 오래 걸리지 않습니다. 따라서 더 이상 시간을 낭비하지 않고 아래 단계에 따라 Shazam 앱 문제를 해결하세요. 수정 1 – 굵은 텍스트 기능 비활성화 iPhone의 굵은 텍스트로 인해 Shazam이 제대로 작동하지 않을 수 있습니다. 1단계 – iPhone 설정에서만 이 작업을 수행할 수 있습니다. 그러니 열어보세요. 2단계 – 다음으로 "디스플레이 및 밝기" 설정을 엽니다. 3단계 - "굵은 텍스트"가 활성화된 경우

iPhone에서 스크린샷 기능이 작동하지 않나요? 스크린샷을 찍는 것은 매우 쉽습니다. 볼륨 높이기 버튼과 전원 버튼을 동시에 누르고 휴대폰 화면을 잡기만 하면 됩니다. 그러나 장치에서 프레임을 캡처하는 다른 방법이 있습니다. 수정 1 – 보조 터치 사용 보조 터치 기능을 사용하여 스크린샷을 찍습니다. 1단계 – 휴대폰 설정으로 이동합니다. 2단계 – 다음으로 탭하여 접근성 설정을 엽니다. 3단계 – 터치 설정을 엽니다. 4단계 – 다음으로 보조 터치 설정을 엽니다. 5단계 – 휴대폰에서 Assistive Touch를 켜세요. 6단계 – “상위 메뉴 사용자화”를 열어서 접근하세요. 7단계 – 이제 이러한 기능 중 하나를 화면 캡처에 연결하기만 하면 됩니다. 그러니 첫 번째를 클릭하세요.

휴대폰에 시계 앱이 없나요? 날짜와 시간은 iPhone의 상태 표시줄에 계속 표시됩니다. 그러나 시계 앱이 없으면 세계 시계, 스톱워치, 알람 시계 및 기타 여러 기능을 사용할 수 없습니다. 따라서 누락된 시계 앱을 수정하는 것이 해야 할 일 목록의 맨 위에 있어야 합니다. 이러한 솔루션은 이 문제를 해결하는 데 도움이 될 수 있습니다. 수정 1 - 시계 앱 배치 실수로 홈 화면에서 시계 앱을 제거한 경우 시계 앱을 다시 제자리에 배치할 수 있습니다. 1단계 – iPhone을 잠금 해제하고 앱 라이브러리 페이지에 도달할 때까지 왼쪽으로 스와이프합니다. 2단계 – 다음으로 검색창에 “시계”를 검색하세요. 3단계 – 검색 결과 아래에 “시계”가 표시되면 길게 누르고

Windows 11은 Microsoft가 출시한 최신 운영체제로 사용자들에게 큰 사랑을 받고 있습니다. Windows 11을 사용하는 과정에서 권한이 필요한 일부 작업을 수행하기 위해 시스템 관리자 권한을 얻어야 하는 경우가 있습니다. 다음으로 Windows 11에서 시스템 관리자 권한을 얻는 단계를 자세히 소개하겠습니다. 첫 번째 단계는 "시작 메뉴"를 클릭하는 것입니다. 왼쪽 하단에 있는 Windows 아이콘을 클릭하여 "시작 메뉴"를 엽니다. 두 번째 단계에서 '를 찾아서 클릭하세요.

Apple ID의 국가 또는 지역은 변경할 수 없습니다. 대부분의 경우 Apple ID의 지역을 변경할 수 없습니다. iPhone에서 AppleID를 변경할 수 있도록 이러한 모든 조건과 해당 솔루션에 대해 논의했습니다. 수정 1 – 모든 활성 구독 취소 Apple은 이미 활성 구독이 있는 경우 지역 수정 작업을 수행하는 것을 허용하지 않습니다. 일반적으로 이러한 앱은 지역마다 구독 요금제, 등급, 수수료(통화)가 다릅니다. 1단계 – 설정으로 이동해야 합니다. 2단계 – 설정 페이지 상단에서 Apple ID를 찾을 수 있습니다. 3단계 – 한 번 클릭하여 엽니다. 4단계 – 다음 페이지에서 “구독” 메뉴를 엽니다. 5단계 – 다음에서 볼 수 있습니다.
