VUE寶典之el-dialog使用

文章目錄

    • 🍁前言
    • 🍁el-dialog簡介
    • 🍁el-dialog屬性
    • 🍁el-dialog示例
    • 🍁父子組件值傳遞示例

🍁前言

el-dialog是Element UI庫中的一個重要組件,用于在Vue應用程序中創建彈出框。它提供了一組實用的屬性和事件,讓我們能夠輕松地實現各種彈出框功能。本文將詳細介紹el-dialog組件的使用方法和示例,幫助您更好地理解如何在實際項目中使用它。

🍁el-dialog簡介

el-dialog是一個非常靈活的彈出框組件,它可以通過簡單的配置來實現各種樣式的彈出框。el-dialog組件基于Element UI庫,因此在使用之前需要確保已經正確引入了Element UI庫。

🍁el-dialog屬性

el-dialog提供了許多屬性,用于控制彈出框的外觀和行為。以下是一些常用的屬性:

  • 📒visible:控制彈出框是否可見。
  • 📒title:彈出框的標題。
  • 📒width:彈出框的寬度。
  • 📒fullscreen:是否全屏顯示。
  • 📒append-to-body:將彈窗附加到body上。
  • 📒close-on-click-modal:點擊蒙層是否關閉彈窗。
  • 📒close-on-press-escape:按下Esc鍵是否關閉彈窗。
  • 📒show-close:是否顯示關閉按鈕。
  • 📒draggable:是否可拖動。
  • 📒resizable:是否可調整大小。
    除了以上屬性外,el-dialog還支持一些自定義事件,例如:@open、@close等。這些事件可以在組件實例中通過 $emit 方法來觸發。

🍁el-dialog示例

下面是一個簡單的el-dialog示例,展示了如何使用屬性和事件來控制彈出框的行為和樣式:

在模板中添加el-dialog組件:
html

<template>  <div>  <el-button @click="dialogVisible = true">打開彈出框</el-button>  <el-dialog :visible.sync="dialogVisible" title="提示" width="30%" @close="dialogVisible = false">  <p>這是一段信息</p>  <div slot="footer" class="dialog-footer">  <el-button @click="dialogVisible = false">取 消</el-button>  <el-button type="primary" @click="dialogVisible = false">確 定</el-button>  </div>  </el-dialog>  </div>  
</template>

在腳本中定義數據和方法:

export default {  data() {  return {  dialogVisible: false,  };  },  
};

在這個示例中,我們通過點擊按鈕來控制dialogVisible的值,從而打開或關閉彈出框。visible.sync屬性用于雙向綁定彈出框的可見性。title屬性用于設置彈出框的標題。width屬性用于設置彈出框的寬度。@close事件用于監聽彈出框關閉事件,并在關閉時設置dialogVisible為false。在彈出框的內容部分,我們通過p標簽來添加文本。在底部工具欄中,我們通過slot="footer"來定義底部按鈕的位置,并通過el-button來添加取消和確定按鈕。注意,為了能夠正確顯示底部工具欄,我們需要在彈出的內容后面添加一個div元素作為底部工具欄的容器,并使用slot="footer"來指定插槽名稱。同時,我們還可以根據需要添加其他屬性和事件來控制彈出框的行為和樣式。例如,我們可以設置fullscreen屬性為true來全屏顯示彈出框,或者設置draggable屬性為true來使彈出框可拖動。同時,我們還可以通過觸發自定義事件來實現一些特定的功能,例如在彈出框打開時觸發@open事件來執行一些操作。總之,el-dialog組件提供了豐富的屬性和事件,讓我們可以靈活地實現各種樣式的彈出框功能。在實際項目中,我們可以根據具體需求進行配置和使用。

🍁父子組件值傳遞示例

當el-dialog組件聲明在子組件中時,父組件和子組件可以通過props和事件進行相互傳遞參數。以下是一個代碼示例:

  • 父組件(ParentComponent.vue):

html

<template>  <div>  <child-component ref="childDialog" :initial-message="parentMessage" @child-event="handleChildEvent"></child-component>  <el-button @click="openChildDialog">打開子組件的彈出框</el-button>  </div>  
</template>  <script>  
import ChildComponent from './ChildComponent.vue';  export default {  components: {  ChildComponent  },  data() {  return {  parentMessage: 'Hello from parent'  };  },  methods: {  openChildDialog() {  // 通過 $refs 訪問子組件實例,并調用 openDialog 方法打開彈出框  this.$refs.childDialog.openDialog();  },  handleChildEvent(childMessage) {  // 處理子組件傳遞的事件和參數  console.log('Received message from child:', childMessage);  // 可以在這里執行其他邏輯或更新父組件的數據  }  }  
};  
</script>
  • 子組件(ChildComponent.vue):

html

<template>  <div>  <el-dialog :visible.sync="dialogVisible" title="子組件的彈出框">  <p>{{ message }}</p>  </el-dialog>  </div>  
</template>  <script>  
export default {  props: {  initialMessage: {  type: String,  default: ''  }  },  data() {  return {  dialogVisible: false, // 控制彈出框的顯示與隱藏  message: this.initialMessage // 初始化時接收父組件傳遞的參數  };  },  methods: {  openDialog() {  // 打開彈出框,并觸發父組件的事件傳遞參數  this.dialogVisible = true;  this.$emit('child-event', 'Hello from child');  },  closeDialog() {  // 關閉彈出框  this.dialogVisible = false;  }  },  watch: {  initialMessage(newValue) {  // 監聽父組件傳遞的參數變化,并更新子組件的數據  this.message = newValue;  }  }  
};  
</script>

在父組件中,我們使用了ref屬性給子組件指定了一個引用名稱childDialog,并通過:initial-message="parentMessage"將父組件的數據parentMessage傳遞給子組件。同時,在父組件的模板中添加了一個按鈕,當點擊該按鈕時,會觸發openChildDialog方法,通過$ refs訪問子組件實例,并調用子組件的openDialog方法打開彈出框。在父組件的方法handleChildEvent中,我們處理子組件傳遞的事件和參數,并可以在這里執行其他邏輯或更新父組件的數據。在子組件中,我們定義了一個props屬性initialMessage來接收父組件傳遞的參數,并在初始化時將參數賦值給子組件的message數據屬性。子組件的openDialog方法中,我們打開彈出框,并通過$emit觸發一個自定義事件child-event,將參數’Hello from child’傳遞給父組件。同時,我們使用:visible.sync="dialogVisible"來綁定彈出框的顯示狀態。這樣,當dialogVisible的值變化時,彈出框的顯示狀態也會相應地改變。


🏫博客主頁:魔王-T

🥝大鵬一日同風起 扶搖直上九萬里

??感謝大家點贊👍收藏?評論??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210680.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210680.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Dubbo3云原生微服務開發實戰】「Dubbo前奏導學」 RPC服務的底層原理和實現

RPC服務 RPC服務介紹RPC通信模式RPC架構組成RPC技術要點RPC通信技術選項分析RPC實戰開發6大基礎組件基礎組件之Guava基礎組件之Hutools基礎組件之ReflectionASM基礎組件之FastJSON/FastJSON2基礎組件之FST相比FastJSON的優勢 基礎組件之Commons-Codec RPC框架層面選項分析RPC組…

持續集成交付CICD:Jenkins配置Nexus制品上傳流水線

目錄 一、實驗 1.Jenkins配置制品上傳流水線 二、問題 1.上傳制品顯示名稱有誤 一、實驗 1.Jenkins配置制品上傳流水線 (1) 新建流水線項目 &#xff08;2&#xff09;描述 &#xff08;3&#xff09;添加參數 &#xff08;4&#xff09;查看構建首頁 &#xff08;5&…

實現簡易的一對一用戶聊天

服務端 package 一對一用戶;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vector…

Vue.js - 界面設計工具和UI組件庫

ViewDesign ViewDesign是一款開源的在線設計工具&#xff0c;它主要提供了一種可視化的界面設計方法&#xff0c;可以幫助設計師和開發人員更高效地完成界面設計和開發工作。 ViewDesign的特點是支持在線協作&#xff0c;可以多人同時進行設計&#xff0c;提高了設計效率&…

Redis課程:黑馬點評

文章目錄 基于Redis實現短信登錄商戶查詢緩存優惠券秒殺一人一單 分布式鎖Redis分布式鎖誤刪情況說明解決Redis分布式鎖誤刪問題使用lua腳本解決分布式鎖的原子性問題 基于阻塞隊列實現秒殺優化Redis消息隊列優化秒殺業務達人探店參考 本文是根據黑馬程序員的視頻課程 黑馬程序…

vscode 開發c環境

前置條件&#xff1a; 1.vscode安裝C/C Extension Pack擴展 2.安裝gcc或者clang開發環境 在工程.vscode目錄下創建task任務文件 tasks.json {"tasks": [{"type": "cppbuild","label": "build","command": &q…

Kubernetes架構及核心部件

文章目錄 1、Kubernetes集群概述1.1、概述1.2、通過聲明式API即可 2、Kubernetes 集群架構2.1、Master 組件2.1.1、API Server2.1.2、集群狀態存儲2.1.3、控制器管理器2.1.4、調度器 2.2、Worker Node 組件2.2.1、kubelet2.2.2、容器運行時環境2.2.3、kube-proxy 2.3、圖解架構…

深入解析Node.js:V8引擎、事件驅動和非阻塞式I/O

文章目錄 1. 引言2. 什么是Node.js&#xff1f;3. V8引擎3.1 V8引擎簡介3.2 V8引擎的特點 4. 事件驅動4.1 事件循環4.2 事件觸發與監聽4.2.1 代碼示例 4.3 異步回調4.3.1 代碼示例 5. 非阻塞式I/O5.1 非阻塞式I/O的優勢5.2 異步與同步的對比5.2.1 同步I/O的代碼示例5.2.2 異步I…

前端知識筆記(三)———CSS核心功能手冊:從熟悉到精通

參考HTML代碼 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wi…

指針 注意事項

指針變量的本質是用來放地址&#xff0c;而一般的變量是放數值的。 1、指針的定義&#xff08;兩種形式&#xff09; ①int x3; int *p&x ②int x; int *p&#xff1b; x3&#xff1b;p&x int*p中 *p和p的差別&#xff1a;簡單說*p是數值&#xff0c;p是地址&a…

Linux 系統上配置 SSH 密鑰

1. 生成 SSH 密鑰 打開終端&#xff0c;運行以下命令來生成 SSH 密鑰&#xff1a; ssh-keygen -t rsa -b 4096 -C "wqzbxhexample.com" 替換 "wqzbxhexample.com" 為你在 GitHub 注冊時使用的郵箱地址。 2. 添加 SSH 密鑰到 SSH 代理 運行以下命令來啟…

ROS gazebo 機器人仿真,環境與robot建模,添加相機 lidar,控制robot運動

b站上有一個非常好的ros教程234仿真之URDF_link標簽簡介-機器人系統仿真_嗶哩嗶哩_bilibili&#xff0c;推薦去看原視頻。 視頻教程的相關文檔見&#xff1a;6.7.1 機器人運動控制以及里程計信息顯示 Autolabor-ROS機器人入門課程《ROS理論與實踐》零基礎教程 本文對視頻教程…

java物聯網協議解析插件,java iot對接解析框架.java物聯網架構的設計思路

一般來說&#xff0c;物聯網開發則hi對硬件設備進行信息采集&#xff0c;所以建議技術棧如下&#xff1a; 物聯網開發技術棧一般如下&#xff1a; nettyspringbootrocketmqredismagic-byte 其中netty用于tcp和數據接入 rockemqt用于消息臨時儲存中轉&#xff0c; springboot就…

【論文精讀】REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS 前言ABSTRACT1 INTRODUCTION2 REACT: SYNERGIZING REASONING ACTING3 KNOWLEDGE-INTENSIVE REASONING TASKS3.1 SETUP3.2 METHODS3.3 RESULTS AND OBSERVATIONS 4 DECISION MAKING TASKS5 RELATED WORK6 CONCLUSI…

phpstudy搭建WordPress教程

一、phpstudy新建配置WordPress 打開phpstudy&#xff0c;啟動Apache&#xff08;或者Nginx&#xff09;和MySQL服務 來到數據庫部分&#xff0c;點擊[創建數據庫]&#xff0c;填寫新建數據庫的名稱&#xff0c;用戶名以及密碼&#xff0c;完成后點擊確認 來到網站部分&#x…

Course2-Week4-決策樹

Course2-Week4-決策樹 文章目錄 Course2-Week4-決策樹1. 決策樹的直觀理解2. 構建單個決策樹2.1 熵和信息增益2.2 構建決策樹——二元輸入特征2.3 構建決策樹——多元輸入特征2.4 構建決策樹——連續的輸入特征2.5 構建回歸樹——連續的輸出結果(選修)2.6 代碼實現-遞歸構建單個…

解決 php 連接mysql數據庫時報錯:Fatal error: Class ‘mysqli’ not found in問題

在使用php對mysql進行連接的過程中&#xff0c;出現了Fatal error: Uncaught Error: Class "mysqli" not found in的問題 解決方案 這個錯誤通常表示您的PHP代碼中缺少MySQL擴展或者沒有啟用MySQL擴展。 我們首先確認一下PHP環境中已經安裝了MySQL擴展。檢查一下自己…

Redis如何做內存優化?

Redis如何做內存優化&#xff1f; 1、縮短鍵值的長度 縮短值的長度才是關鍵&#xff0c;如果值是一個大的業務對象&#xff0c;可以將對象序列化成二進制數組&#xff1b; 首先應該在業務上進行精簡&#xff0c;去掉不必要的屬性&#xff0c;避免存儲一些沒用的數據&#xff1…

rust詳解

前言 rust 學習曲線非常陡峭&#xff0c;但是基本語法也還算挺好理解&#xff0c;自動內存管理有點類似智能指針&#xff0c;基本看一下語法入門就可以大概理解&#xff0c;但是唯獨宏很難理解&#xff0c;語法非常晦澀。但是功能非常強大。聲明宏類似于c語言的宏處理&#xf…

【淘寶網消費類電子產品銷售數據可視化】

淘寶網消費類電子產品銷售數據可視化 引言數據爬取與處理數據可視化系統功能1. 總數據量分析2. 店鋪總數據3. 店鋪銷售額排名4. 不同電子商品銷售價格5. 單個商品價格排名6. 不同省份平均銷量7. 不同地區的平均銷售額8. 省份數量9. 每個省份有用的平均個數 創新點結語 引言 隨…