国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【小程序開(kāi)發(fā)】—— 封裝自定義彈窗組件

這篇具有很好參考價(jià)值的文章主要介紹了【小程序開(kāi)發(fā)】—— 封裝自定義彈窗組件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

??前言:

大家好我是不苒,本人男,頭像是女朋友照片,很多大佬都以為我是女的,淺淺的解釋一下哈哈。很高興書(shū)寫(xiě)博客與大家分享知識(shí)。
本片文章主要講的是,使用uniapp開(kāi)發(fā)背景下,使用Vue的具名插槽封裝一個(gè)自定義的彈窗組件popup,感興趣的小伙伴可以學(xué)習(xí)一下,如果發(fā)現(xiàn)本人編寫(xiě)有問(wèn)題的話,歡迎大家隨時(shí)來(lái)評(píng)論區(qū)探討支出問(wèn)題,我也會(huì)及時(shí)更正的。

話不多說(shuō)直接上正文一起來(lái)學(xué)習(xí)一下封裝自定義彈窗組件吧!

??正文

1、探討需求封裝popup自定義彈窗組件

首先我們需要探討一下,封裝自定義的組件都需要什么功能

  1. 需要一個(gè)半透明灰色的背景,用于區(qū)分與非彈窗內(nèi)容,點(diǎn)擊灰色區(qū)域也可以關(guān)閉彈窗。
  2. 需要一個(gè)關(guān)閉按鈕和兩個(gè)操作按鈕,一個(gè)確定,一個(gè)取消。
  3. 彈窗內(nèi)容:標(biāo)題,內(nèi)容區(qū)域,因?yàn)槭亲远x所以都使用了具名插槽,也可以設(shè)置默認(rèn)的顯示內(nèi)容。
  4. 彈窗的顯示位置,本次封裝只考慮了居中與頁(yè)面底部?jī)蓚€(gè)常用顯示位置。

2、實(shí)戰(zhàn)開(kāi)發(fā)彈窗組件

2.1 子組件內(nèi)容 popup.vue文件

<template>
	<view class="mark" v-if="isShow" @click="close">
		<view :class="bottom?'bottom':'center'" class="content" >
			<view @click="close">
				<image class="close" src="../static/close.png" ></image>
			</view>
			<slot name="title">
				<view class="title">子組件默認(rèn)標(biāo)題</view>
			</slot>
			<slot name="body">
				<text style="font-size: 14px;">確定要取消訂單嗎?取消之后購(gòu)物車(chē)也將清空。</text>
			</slot>
			<slot name="bottom">
				<view class="btns">
					<view class="confirm btn" @click="confirm">確定</view>
					<view class="cancel btn" @click="cancel">取消</view>
				</view>
			</slot>
		</view>
	</view>
</template>

<script>
	export default {
		props: {
			isShow: {
				type: Boolean,
				default: false
			},
			// 子組件接收一個(gè)布爾類(lèi)型的bottom,如果為true則彈窗則在頁(yè)面的底部,false為默認(rèn)居中顯示
			bottom: {
				type: Boolean,
				default: false
			}
		},
		data() {
			return{
			}
		},
		methods: {
			close(){
				this.$emit('close')
			},
			cancel(){
				this.$emit('cancel')
			},
			confirm(){
				this.$emit('confirm')
			},
		}
	}
</script>

<style lang="scss">
	.mark {
		position: fixed;
		width: 100vw;
		height: 100vh;
		background-color: rgba(0, 0, 0, 0.3);
		left: 0;
		bottom: 0;
		top: 0;
		right: 0;
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.bottom{
		position: absolute;
		bottom: 0 ;
		width: 100vw;
	}
	.center{
		width: 80vw;
		position: relative;
	}
	.content{
		background-color: #fff;
		border-radius: 20rpx;
		height: 400rpx;
		
		padding: 40rpx;
		box-sizing: border-box;
		
		.close{
			position:absolute;
			right:30rpx;
			top: 20rpx;
			width: 40rpx;
			height: 40rpx;
		}
		.title{
			text-align: center;
			font-weight: 600;
			height: 50rpx;
			line-height: 50rpx;
			margin-bottom: 20rpx;
		}
		.btns{
			bottom: 20px;
			position: absolute;
			display: flex;
			justify-content: space-between;
			width: 88%;
			.btn{
				width: 160rpx;
				height: 80rpx;
				text-align: center;
				line-height: 80rpx;
				border-radius: 20rpx;
			}
			.confirm{
				background: bisque;
			}
			.cancel{
				background: #ccc;
			}
		}
		
	}
</style>

注意:

  • 本文CSS內(nèi)容使用了scss語(yǔ)法,不使用的話可以將嵌套的樣式拿出即可。

解釋說(shuō)明:

  • isShow 用于控制彈出層的顯示與隱藏,在點(diǎn)擊灰色空白區(qū)域和右上角關(guān)閉按鈕,還有確定按鈕與取消按鈕之后都會(huì)關(guān)閉彈出層。
  • bottom 用于控制彈出層的顯示位置,默認(rèn)為居中顯示
  • methods中向父組件傳遞了三個(gè)方法,分別是關(guān)閉彈窗,點(diǎn)擊確定按鈕,點(diǎn)擊取消按鈕
  • 使用具名插槽,在父組件中可以自定義插槽中的內(nèi)容,方便不同位置的彈窗顯示樣式

2.2 父組件引用子組件

<template>
	<view class="container">
		<view class="btn" @click="open">
			顯示彈出層
		</view>	
		<popup :isShow='visible' :bottom='true'  @close="closeMadle" @cancel="cancel" @confirm="confirm">
			<template v-slot:title>
				<view class="title">
					父組件自定義標(biāo)題
				</view>
			</template>
			<template v-slot:body>
				<view class="body" >
					這里是父組件引用子組件,使用具名插槽編寫(xiě)的自定義內(nèi)容和樣式。
				</view>
			</template>
		</popup>
	</view>
	
</template>

<script>
	import popup from '../../components/popup.vue'
	export default {
		components: {
			popup
		},
		data() {
			return {
				visible:false,
			}
		},
		methods: {
			open(){
				this.visible = true
				uni.hideTabBar()
			},
			closeMadle(){
				this.visible = false
				uni.showTabBar()
			},
			confirm(){
				// 這里調(diào)用接口執(zhí)行點(diǎn)擊確定后的操作并關(guān)閉彈窗
				console.log('點(diǎn)擊了確認(rèn)按鈕')
				this.visible = false
			},
			cancel(){
				// 點(diǎn)擊了取消按鈕直接關(guān)閉彈窗
				console.log('點(diǎn)擊了取消按鈕')
				this.visible = false
			},
		}
	}
</script>

<style lang="scss>
	.title{
		text-align: center;
		font-weight: 600;
		height: 50rpx;
		line-height: 50rpx;
		margin-bottom: 20rpx;
	}
	.body{
		font-size: 14px;
		font-weight: 600;
		color: darkorchid;
	}
</style>

注意:

  • 本文CSS內(nèi)容使用了scss語(yǔ)法,不使用的話可以將嵌套的樣式拿出即可。

解釋說(shuō)明:

  • 引用子組件,并在conponents中注冊(cè)。
  • bottomtrue用于控制彈出層的彈窗在底部顯示,不傳默認(rèn)為居中顯示。
  • @語(yǔ)法接收子組件中向父組件傳遞的三個(gè)方法,在父組件methods中定義三個(gè)方法做相應(yīng)的操作。
  • 使用具名插槽,自定義插槽中的內(nèi)容。
  • uni.showTabBar()uni.hideTabBar()兩個(gè)方法用于控制原生tabbar的顯示與隱藏。

3、效果圖預(yù)覽

3.1 不使用具名插槽的原有樣式效果

小程序自定義彈窗,小程序項(xiàng)目實(shí)戰(zhàn),前端,uni-app,組件封裝,vue,小程序

3.2 使用具名插槽之后樣式效果

小程序自定義彈窗,小程序項(xiàng)目實(shí)戰(zhàn),前端,uni-app,組件封裝,vue,小程序

這里是演示的那個(gè)顯示在頁(yè)面底部的彈窗,如果不需要直接將代碼片段里的:bottom="true"刪掉即可

??專(zhuān)欄分享:

小程序項(xiàng)目實(shí)戰(zhàn)專(zhuān)欄:《uniapp小程序開(kāi)發(fā)》
前端面試專(zhuān)欄地址:《面試必看》


? 名言警句:說(shuō)能做的,做說(shuō)過(guò)的 \textcolor{red} {名言警句:說(shuō)能做的,做說(shuō)過(guò)的} 名言警句:說(shuō)能做的,做說(shuō)過(guò)的

? 原創(chuàng)不易,還希望各位大佬支持一下 \textcolor{blue}{原創(chuàng)不易,還希望各位大佬支持一下} 原創(chuàng)不易,還希望各位大佬支持一下

?? 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力! \textcolor{green}{點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!} 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!

?? 收藏,你的青睞是我努力的方向! \textcolor{green}{收藏,你的青睞是我努力的方向!} 收藏,你的青睞是我努力的方向!

?? 評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富! \textcolor{green}{評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富!} 評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富!
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-802442.html

到了這里,關(guān)于【小程序開(kāi)發(fā)】—— 封裝自定義彈窗組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uniapp小程序手寫(xiě)封裝popup彈窗message提醒框組件

    uniapp小程序手寫(xiě)封裝popup彈窗message提醒框組件

    在寫(xiě)uniapp小程序的時(shí)候,彈窗提醒經(jīng)常會(huì)用到,雖然彈窗的組件很多,但是通常別人封裝好的彈窗組件自定義度不高,很難匹配自己的ui需求。所以本篇文章教大家封裝自己的彈窗提醒組件 取消和確認(rèn)按鈕的點(diǎn)擊事件使用$emit傳事件。中間的文字部分接收父組件的傳值。 css大

    2024年02月11日
    瀏覽(81)
  • 微信小程序|自定義彈窗組件

    微信小程序|自定義彈窗組件

    2024年02月12日
    瀏覽(87)
  • uniapp微信小程序自定義彈窗組件

    寫(xiě)一個(gè)能夠復(fù)用的彈窗組件,內(nèi)容包括: \\\"標(biāo)題\\\",\\\"圖片\\\",\\\"描述內(nèi)容\\\",\\\"按鈕\\\". 且按鈕可能會(huì)有多中功能(比如: 點(diǎn)擊按鈕可能只是關(guān)閉彈窗,或者關(guān)閉彈窗并跳轉(zhuǎn)) 1.創(chuàng)建彈窗組件?popup-view 1.小編這里考慮組件全局都有可能會(huì)用到,就在主包的 components 文件夾下創(chuàng)建popup-view組件 2.組件內(nèi)

    2024年02月04日
    瀏覽(20)
  • uniapp&&微信小程序底部彈窗自定義組件

    uniapp&&微信小程序底部彈窗自定義組件

    個(gè)人項(xiàng)目地址:?SubTopH前端開(kāi)發(fā)個(gè)人站 ? (自己開(kāi)發(fā)的前端功能和UI組件,一些有趣的小功能,感興趣的伙伴可以訪問(wèn),歡迎提出更好的想法,私信溝通,網(wǎng)站屬于靜態(tài)頁(yè)面) SubTopH前端開(kāi)發(fā)個(gè)人站 https://subtop.gitee.io/subtoph.github.io/#/home ?基礎(chǔ)彈窗效果組件 在頁(yè)面使用 父組件

    2024年02月14日
    瀏覽(19)
  • 微信小程序之自定義模態(tài)彈窗(帶動(dòng)畫(huà))實(shí)例 —— 微信小程序?qū)崙?zhàn)系列(8)(2)

    微信小程序之自定義模態(tài)彈窗(帶動(dòng)畫(huà))實(shí)例 —— 微信小程序?qū)崙?zhàn)系列(8)(2)

    api如下: 示例: 這樣的模態(tài)彈窗,充其量只能做個(gè)alert,提示一下信息。 但是并不能使用它來(lái)處理復(fù)雜性的彈窗業(yè)務(wù),因此寫(xiě)了Michael從新自定義了一個(gè),采用了仿原生的樣式寫(xiě)法 wxml: button 彈窗標(biāo)題 標(biāo)題 標(biāo)題 標(biāo)題 標(biāo)題 備注 確定 wxss: / button / .btn { width: 80%; padding: 20rpx

    2024年04月11日
    瀏覽(23)
  • 微信小程序開(kāi)發(fā)教程:項(xiàng)目三表單組件 課后習(xí)題

    微信小程序開(kāi)發(fā)教程:項(xiàng)目三表單組件 課后習(xí)題

    《微信小程序開(kāi)發(fā)教程》主編/黃壽孟 易芳 陶延濤 湖南大學(xué)出版社 目錄 一、單選題 二、多選題 三、判斷題 四、填空題 五、簡(jiǎn)答題 1.請(qǐng)簡(jiǎn)單描述搭建node后臺(tái)服務(wù)器的過(guò)程。 2.在調(diào)查問(wèn)卷案例中,微信小程序發(fā)起接口請(qǐng)求成功后,后臺(tái)返回的數(shù)據(jù)信息主要內(nèi)容是什么? 六、

    2024年02月09日
    瀏覽(26)
  • 微信小程序開(kāi)發(fā)教程:項(xiàng)目六媒體組件 課后習(xí)題

    《微信小程序開(kāi)發(fā)教程》主編/黃壽孟 易芳 陶延濤 湖南大學(xué)出版社 目錄 一、單選題 二、多選題 ?三、判斷題 四、填空題 五、簡(jiǎn)答題 請(qǐng)簡(jiǎn)單列舉音頻接口API創(chuàng)建的InnerAudioContext 實(shí)例屬性和方法。 六、編程題 1.請(qǐng)?jiān)谝魳?lè)小程序項(xiàng)目中實(shí)現(xiàn)切換到上一曲功能。 2.請(qǐng)?jiān)谝魳?lè)小程

    2024年02月05日
    瀏覽(16)
  • 微信小程序開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn) ⑩⑤(定義Data數(shù)據(jù)及監(jiān)聽(tīng)器)

    微信小程序開(kāi)發(fā)入門(mén)與實(shí)戰(zhàn) ⑩⑤(定義Data數(shù)據(jù)及監(jiān)聽(tīng)器)

    @作者 : SYFStrive ? @博客首頁(yè) : HomePage ??: 微信小程序 ??: 個(gè)人社區(qū)(歡迎大佬們加入) ??: 社區(qū)鏈接?? ??: 覺(jué)得文章不錯(cuò)可以點(diǎn)點(diǎn)關(guān)注 ??: 專(zhuān)欄連接?? ??: 感謝支持,學(xué)累了可以先看小段由小胖給大家?guī)?lái)的街舞?? ?? 微信小程序 (??) 組件模板渲染的私有數(shù)

    2024年02月09日
    瀏覽(22)
  • 微信小程序開(kāi)發(fā)尚學(xué)堂 介紹 項(xiàng)目結(jié)構(gòu) 組件 喧嚷 事件 模板

    微信小程序開(kāi)發(fā)尚學(xué)堂 介紹 項(xiàng)目結(jié)構(gòu) 組件 喧嚷 事件 模板

    1. 微信小程序介紹 微信小程序,簡(jiǎn)稱(chēng)小程序,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用”觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開(kāi)應(yīng)用。 說(shuō)明: 小程序是需要下載的,小程序的占用大小很小,感覺(jué)不到下載 目前大小限制2M (最終開(kāi)發(fā)的小程序打包壓縮

    2023年04月23日
    瀏覽(20)
  • 微信小程序開(kāi)發(fā)教學(xué)系列(12)- 實(shí)戰(zhàn)項(xiàng)目案例

    微信小程序開(kāi)發(fā)教學(xué)系列(12)- 實(shí)戰(zhàn)項(xiàng)目案例

    本章將通過(guò)一個(gè)簡(jiǎn)單的實(shí)戰(zhàn)項(xiàng)目案例來(lái)幫助讀者鞏固之前學(xué)習(xí)到的知識(shí)。我們將搭建一個(gè)名為“ToDoList”的微信小程序,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的任務(wù)清單功能。 ToDoList是一個(gè)用于記錄和管理任務(wù)的小程序。用戶可以添加、編輯、完成和刪除任務(wù),以及查看任務(wù)清單。 功能需求 顯示任

    2024年02月11日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包