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

如何在Vue.js中創(chuàng)建模態(tài)框(彈出框)

這篇具有很好參考價(jià)值的文章主要介紹了如何在Vue.js中創(chuàng)建模態(tài)框(彈出框)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

如何在Vue.js中創(chuàng)建模態(tài)框(彈出框),vue.js,flutter,前端,javascript,ecmascript

開篇

模態(tài)框(彈出層對話框,Modal Popup)在大多數(shù)現(xiàn)代應(yīng)用程序中非常常見。它們主要用于呈現(xiàn)簡潔的信息,非常適合顯示廣告和促銷內(nèi)容。模態(tài)框提供了一種快速傳達(dá)信息的方式,并提供了用戶友好的關(guān)閉選項(xiàng)。

在本文中,我們將使用Vuejs構(gòu)建一個彈出模態(tài)框。該模態(tài)框?qū)ㄒ粋€取消或關(guān)閉按鈕,以方便用戶在完成任務(wù)后關(guān)閉它。此外,我們還將實(shí)現(xiàn)一個功能,允許用戶在模態(tài)框區(qū)域外點(diǎn)擊以關(guān)閉它。

模態(tài)彈出組件

<script setup lang="ts">
import { ref } from 'vue';

const message = ref('This is a modal popup');
const emit = defineEmits(['close']);

const closeModal = () => {
  emit('close');
};
</script>
<template>
  <div class="popup" @click.self="closeModal">
    <div class="popup-content">
      <div class="popup-header">
        <h2 class="popup-title">{{ message }}</h2>
        <button class="popup-close-button" @click.prevent="closeModal">X</button>
      </div>
      <article>
        <div class="popup-content-text">
          This is a simple modal popup in Vue.js
        </div>
      </article>
    </div>
  </div>
</template>

Script Section

<script setup lang="ts">
import { ref } from 'vue';
const message = ref('This is a modal popup');
const emit = defineEmits(['close']);
const closeModal = () => {
 emit('close');
};
</script>

在這個部分,我們從Vue中導(dǎo)入所需的功能。

  • ref?用于創(chuàng)建一個包含在模態(tài)框中顯示的響應(yīng)式變量消息。

  • emit用于定義一個名為“close”的事件,該事件可被觸發(fā)以關(guān)閉模態(tài)框。

  • closeModal是一個函數(shù),當(dāng)調(diào)用時(shí)會觸發(fā)“close”事件,從而有效地關(guān)閉模態(tài)框。

Template Section

<template>
   <div class="popup" @click.self="closeModal">
   <div class="popup-content">
   <div class="popup-header">
   <h2 class="popup-title">{{ message }}</h2>
   <button class="popup-close-button" @click.prevent="closeModal">X</button>
 </div>
 <article>
   <div class="popup-content-text">
   This is a simple modal popup in Vue.js
   </div>
 </article>
 </div>
 </div>
</template>

本段代碼義了模板中模態(tài)框的結(jié)構(gòu)。

  • 具有“popup”類的最外層div用作模態(tài)框的背景。

  • @click.self="closeModal"事件監(jiān)聽器附加到背景上,允許在其內(nèi)容之外點(diǎn)擊時(shí)關(guān)閉模態(tài)框。

  • 內(nèi)容包括一個標(biāo)題(popup-title)和一個關(guān)閉按鈕(popup-close-button)。

  • 在標(biāo)題下方,有一個文章部分,其中包含了模態(tài)框的主要內(nèi)容。

渲染模態(tài)框組件

<script setup lang="ts">
import { ref } from 'vue'
import Popup from "@/components/Popup.vue"; // @ is an alias to /src

const msg = ref('Hello World!')
const isOpened = ref(false)

</script>
<template>
  <div>
    <h1>{{ msg }}</h1>
    <button @click="isOpened = !isOpened">Open Popup</button>
    <Teleport to="body">
      <Popup v-if="isOpened" @close="isOpened = !isOpened" />
    </Teleport>
  </div>
</template>

數(shù)據(jù)和狀態(tài)管理:

代碼使用Vue的ref函數(shù)創(chuàng)建了兩個響應(yīng)式變量:

  • - msg: 初始設(shè)置為“Hello World!”的文本消息。

  • - isOpened: 這是一個布爾變量,初始值為false,表示彈出窗口是否打開或關(guān)閉。

按鈕點(diǎn)擊事件

模板中有一個帶有點(diǎn)擊事件監(jiān)聽器(@click)的<button>元素。當(dāng)按鈕被點(diǎn)擊時(shí),它會切換isOpened變量的值,從而有效地打開或關(guān)閉彈出窗口。

導(dǎo)入彈出框組件

  • 代碼導(dǎo)入了一個彈出組件(Popup.vue)。

  • 在模板中,使用v-if條件渲染彈出窗口組件。只有當(dāng)isOpened變量為true時(shí)(v-if="isOpened"),彈出窗口才會顯示,表示彈出窗口應(yīng)該是打開的。

  • <Teleport>用于將彈出窗口組件移動到HTML文檔的<body>元素中。這樣可以確保彈出窗口在當(dāng)前組件的DOM層次結(jié)構(gòu)之外渲染,并且可以顯示在頁面上的其他內(nèi)容之上。

組件之間的通信:

  • 當(dāng)需要關(guān)閉彈出組件時(shí),Popup組件會觸發(fā)一個關(guān)閉事件@close。父組件使用@close事件監(jiān)聽器來監(jiān)聽此關(guān)閉事件。

  • 當(dāng)Popup組件發(fā)出事件時(shí),它切換isOpened變量,從而關(guān)閉彈出窗口。

您可以在CodeSandbox上使用本文中設(shè)計(jì)的代碼進(jìn)行在線體驗(yàn)。

https://codesandbox.io/s/suspicious-kepler-993dmh?file=%2Fsrc%2Fviews%2FHome.vue%3A0-420

結(jié)束

由于文章內(nèi)容篇幅有限,今天的內(nèi)容就分享到這里,文章結(jié)尾,我想提醒您,文章的創(chuàng)作不易,如果您喜歡我的分享,請別忘了點(diǎn)贊和轉(zhuǎn)發(fā),讓更多有需要的人看到。同時(shí),如果您想獲取更多前端技術(shù)的知識,歡迎關(guān)注我,您的支持將是我分享最大的動力。我會持續(xù)輸出更多內(nèi)容,敬請期待。文章來源地址http://www.zghlxwxcb.cn/news/detail-709590.html

到了這里,關(guān)于如何在Vue.js中創(chuàng)建模態(tài)框(彈出框)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 基于vue+Element Table Popover 彈出框內(nèi)置表格的封裝

    基于vue+Element Table Popover 彈出框內(nèi)置表格的封裝

    在選擇數(shù)據(jù)的時(shí)候需要在已選擇的數(shù)據(jù)中對比選擇,具體就是點(diǎn)擊一個按鈕,彈出一個小的彈出框,但不像對話框那樣還需要增加一個遮罩層,更加的輕量化,但是需要查看的數(shù)據(jù)很多需要一個列表來展示,列表的話還需要一個篩選功能。 我的思路是增加復(fù)選框列,將選擇的

    2024年02月07日
    瀏覽(27)
  • Vue3實(shí)現(xiàn)帶點(diǎn)擊外部關(guān)閉對應(yīng)彈出框(可共用一個變量)

    首先,假設(shè)您在單文件組件(SFC)中使用了Vue3,并且有兩個div元素分別通過`v-if`和`v-else`來切換顯示一個帶有`.elpopver`類的彈出組件。在這種情況下,每個彈出組件應(yīng)當(dāng)擁有獨(dú)立的狀態(tài)管理(例如:各自的isOpen變量)。為了實(shí)現(xiàn)點(diǎn)擊外部關(guān)閉對應(yīng)彈出框的功能,我們需要為每個組

    2024年01月18日
    瀏覽(64)
  • vue實(shí)現(xiàn)彈出框內(nèi)嵌頁面展示,添加tab切換展示實(shí)時(shí)加載

    vue實(shí)現(xiàn)彈出框內(nèi)嵌頁面展示,添加tab切換展示實(shí)時(shí)加載

    最近做業(yè)務(wù)的時(shí)候,發(fā)現(xiàn)產(chǎn)品的原型圖上有一個彈出框,上面包含了兩個窗口要進(jìn)行切換。 每個窗口都有分頁列表展示、搜索、添加和刪除,感覺就是兩個完整的頁面,如果全寫在一個頁面會很麻煩,還可能會出現(xiàn)一系列的問題,后期改起來比較麻煩,所以我就準(zhǔn)備分開來寫

    2024年02月16日
    瀏覽(23)
  • 前端echarts地圖3D效果+點(diǎn)擊地域出現(xiàn)彈出框可以有確定取消操作

    前端echarts地圖3D效果+點(diǎn)擊地域出現(xiàn)彈出框可以有確定取消操作

    效果圖如下: ? ?代碼如下: 運(yùn)行3D項(xiàng)目要安裝一下echarts-gl依賴: 引入的jiangsu文件要單獨(dú)下載json文件,附上兩個網(wǎng)址: DataV.GeoAtlas地理小工具系列 POI數(shù)據(jù)|高德POI|高德興趣點(diǎn)|高德POI數(shù)據(jù)|高德POI下載|高德POI數(shù)據(jù)庫|高德POI分類|高德北京市POI|高德上海市POI|高德廣州市POI|高德

    2024年02月11日
    瀏覽(40)
  • Web前端篇——el-date-picker日期彈出框大小的修改

    通常情況下el-date-picker日期彈出框的大小我們很少去改到它,但是如果某些特定情況下需要我們改動它的話,可以按以下步驟實(shí)現(xiàn): 1.第一步,定義一個style樣式 2.第二步,?設(shè)置popper-class樣式和事件監(jiān)聽 在el-date-picker給popper-class使用該樣式,并添加一個彈出框的顯示與隱藏監(jiān)

    2024年01月25日
    瀏覽(19)
  • Selenium4+Python3 - Iframe、Select控件、交互式彈出框、執(zhí)行JS、Cookie操作

    Selenium4+Python3 - Iframe、Select控件、交互式彈出框、執(zhí)行JS、Cookie操作

    iframe識別: 語法: driver.switch_to.frame(‘方式’) 1、常見處理方法三種 index:下標(biāo) name:id或name屬性的值 webelement:元素 2、通過下標(biāo)進(jìn)入 進(jìn)入第一個iframe: 3、通過id或name屬性的值進(jìn)入 通過id或name屬性的值進(jìn)入指定的iframe: 4、通過iframe元素進(jìn)入iframe 通過iframe元素進(jìn)入指定i

    2024年02月04日
    瀏覽(95)
  • 如何使用前端框架(React、Angular、Vue.js等)?該如何選擇?

    如何使用前端框架(React、Angular、Vue.js等)?該如何選擇?

    聚沙成塔·每天進(jìn)步一點(diǎn)點(diǎn) 前端入門之旅:探索Web開發(fā)的奇妙世界 歡迎來到前端入門之旅!感興趣的可以訂閱本專欄哦!這個專欄是為那些對Web開發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無論你是完全的新手還是有一些基礎(chǔ)的開發(fā)者,這里都將為你提供一個系統(tǒng)而

    2024年02月07日
    瀏覽(23)
  • Vue 2和Vue 3路由Router創(chuàng)建的區(qū)別簡記(在main.js文件中引入的區(qū)別和router的js文件中創(chuàng)建語法的區(qū)別)

    Vue 2和Vue 3路由Router創(chuàng)建的區(qū)別簡記(在main.js文件中引入的區(qū)別和router的js文件中創(chuàng)建語法的區(qū)別)

    1、版本的搭配: Vue 2到Vue 3的改版升級,同樣的帶來Vue Router的升級。創(chuàng)建Vue項(xiàng)目之后,我們可以在package.json文件中看到,Vue 2創(chuàng)建的項(xiàng)目往往是與Vue Router 3.X版本搭配的,而Vue 3創(chuàng)建的項(xiàng)目與Vue Router 4.X版本搭配。 Vue 3搭配Vue Router 4.X版本: Vue 2搭配Vue Router3.X版本: 2、在main

    2024年02月08日
    瀏覽(87)
  • vue前端實(shí)現(xiàn)圖片下載,實(shí)現(xiàn)點(diǎn)擊按鈕彈出本地窗口,選擇自定義保存路徑

    vue前端實(shí)現(xiàn)圖片下載,實(shí)現(xiàn)點(diǎn)擊按鈕彈出本地窗口,選擇自定義保存路徑

    直接上代碼,廢話不多說,點(diǎn)關(guān)注,不迷路 一、下載代碼 二、別找代碼了,不用代碼就可以實(shí)現(xiàn) 以下按照步驟一步一步來 按照紅色箭頭所指,用鼠標(biāo)戳它 恭喜你,功能完成了

    2024年02月13日
    瀏覽(32)
  • selenium-彈出框、下拉框

    ????????對js使用的alert、confirm 以及 prompt定位也是項(xiàng)目中常見的,比如彈出提 示框“確定”等。要定位這類提示框具體思路是switch_to_alert()方法定位 alert/confirm/prompt,然后使用text/accept/dismiss/send_keys這一系列動作。 driver.switch_to.alert.accept()???????? #點(diǎn)擊ok driver.switch_t

    2024年02月02日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包