MessageBox 彈框

模擬系統的消息提示框而實現的一套模態對話框組件,用于消息提示、確認消息和提交內容。

?從場景上說,MessageBox 的作用是美化系統自帶的?alertconfirm?和?prompt,因此適合展示較為簡單的內容。如果需要彈出較為復雜的內容,請使用 Dialog。

消息提示

當用戶進行操作時會被觸發,該對話框中斷用戶操作,直到用戶確認知曉后才可關閉。

調用$alert方法即可打開消息提示,它模擬了系統的?alert,無法通過按下 ESC 或點擊框外關閉。此例中接收了兩個參數,messagetitle。值得一提的是,窗口被關閉后,它默認會返回一個Promise對象便于進行后續操作的處理。若不確定瀏覽器是否支持Promise,可自行引入第三方 polyfill 或像本例一樣使用回調進行后續處理。

 1 <template>
 2   <el-button type="text" @click="open">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open() {
 9         this.$alert('這是一段內容', '標題名稱', {
10           confirmButtonText: '確定',
11           callback: action => {
12             this.$message({
13               type: 'info',
14               message: `action: ${ action }`
15             });
16           }
17         });
18       }
19     }
20   }
21 </script>
View Code

?

確認消息

提示用戶確認其已經觸發的動作,并詢問是否進行此操作時會用到此對話框。

調用$confirm方法即可打開消息提示,它模擬了系統的?confirm。Message Box 組件也擁有極高的定制性,我們可以傳入options作為第三個參數,它是一個字面量對象。type字段表明消息類型,可以為successerrorinfowarning,無效的設置將會被忽略。注意,第二個參數title必須定義為String類型,如果是Object,會被理解為options。在這里我們用了 Promise 來處理后續響應。

 1 <template>
 2   <el-button type="text" @click="open2">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open2() {
 9         this.$confirm('此操作將永久刪除該文件, 是否繼續?', '提示', {
10           confirmButtonText: '確定',
11           cancelButtonText: '取消',
12           type: 'warning'
13         }).then(() => {
14           this.$message({
15             type: 'success',
16             message: '刪除成功!'
17           });
18         }).catch(() => {
19           this.$message({
20             type: 'info',
21             message: '已取消刪除'
22           });          
23         });
24       }
25     }
26   }
27 </script>
View Code

?

提交內容

當用戶進行操作時會被觸發,中斷用戶操作,提示用戶進行輸入的對話框。

調用$prompt方法即可打開消息提示,它模擬了系統的?prompt。可以用inputPattern字段自己規定匹配模式,或者用inputValidator規定校驗函數,可以返回BooleanString,返回false或字符串時均表示校驗未通過,同時返回的字符串相當于定義了inputErrorMessage字段。此外,可以用inputPlaceholder字段來定義輸入框的占位符。

 1 <template>
 2   <el-button type="text" @click="open3">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open3() {
 9         this.$prompt('請輸入郵箱', '提示', {
10           confirmButtonText: '確定',
11           cancelButtonText: '取消',
12           inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
13           inputErrorMessage: '郵箱格式不正確'
14         }).then(({ value }) => {
15           this.$message({
16             type: 'success',
17             message: '你的郵箱是: ' + value
18           });
19         }).catch(() => {
20           this.$message({
21             type: 'info',
22             message: '取消輸入'
23           });       
24         });
25       }
26     }
27   }
28 </script>
View Code

?

自定義

可自定義配置不同內容。

以上三個方法都是對$msgbox方法的再包裝。本例直接調用$msgbox方法,使用了showCancelButton字段,用于顯示取消按鈕。另外可使用cancelButtonClass為其添加自定義樣式,使用cancelButtonText來自定義按鈕文本(Confirm 按鈕也具有相同的字段,在文末的字段說明中有完整的字段列表)。此例還使用了beforeClose屬性,它的值是一個方法,會在 MessageBox 的實例關閉前被調用,同時暫停實例的關閉。它有三個參數:action、實例本身和done方法。使用它能夠在關閉前對實例進行一些操作,比如為確定按鈕添加loading狀態等;此時若需要關閉實例,可以調用done方法(若在beforeClose中沒有調用done,則實例不會關閉)。

 1 <template>
 2   <el-button type="text" @click="open4">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open4() {
 9         const h = this.$createElement;
10         this.$msgbox({
11           title: '消息',
12           message: h('p', null, [
13             h('span', null, '內容可以是 '),
14             h('i', { style: 'color: teal' }, 'VNode')
15           ]),
16           showCancelButton: true,
17           confirmButtonText: '確定',
18           cancelButtonText: '取消',
19           beforeClose: (action, instance, done) => {
20             if (action === 'confirm') {
21               instance.confirmButtonLoading = true;
22               instance.confirmButtonText = '執行中...';
23               setTimeout(() => {
24                 done();
25                 setTimeout(() => {
26                   instance.confirmButtonLoading = false;
27                 }, 300);
28               }, 3000);
29             } else {
30               done();
31             }
32           }
33         }).then(action => {
34           this.$message({
35             type: 'info',
36             message: 'action: ' + action
37           });
38         });
39       }
40     }
41   }
42 </script>
View Code

?

使用 HTML 片段

message?屬性支持傳入 HTML 片段

dangerouslyUseHTMLString屬性設置為 true,message?就會被當作 HTML 片段處理。

 1 <template>
 2   <el-button type="text" @click="open5">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open5() {
 9         this.$alert('<strong>這是 <i>HTML</i> 片段</strong>', 'HTML 片段', {
10           dangerouslyUseHTMLString: true
11         });
12       }
13     }
14   }
15 </script>
View Code

?

message?屬性雖然支持傳入 HTML 片段,但是在網站上動態渲染任意 HTML 是非常危險的,因為容易導致?XSS 攻擊。因此在?dangerouslyUseHTMLString?打開的情況下,請確保?message?的內容是可信的,永遠不要將用戶提交的內容賦值給?message屬性。

?

居中布局

內容支持居中布局

將?center?設置為?true?即可開啟居中布局

 1 <template>
 2   <el-button type="text" @click="open6">點擊打開 Message Box</el-button>
 3 </template>
 4 
 5 <script>
 6   export default {
 7     methods: {
 8       open6() {
 9         this.$confirm('此操作將永久刪除該文件, 是否繼續?', '提示', {
10           confirmButtonText: '確定',
11           cancelButtonText: '取消',
12           type: 'warning',
13           center: true
14         }).then(() => {
15           this.$message({
16             type: 'success',
17             message: '刪除成功!'
18           });
19         }).catch(() => {
20           this.$message({
21             type: 'info',
22             message: '已取消刪除'
23           });
24         });
25       }
26     }
27   }
28 </script>
View Code

?

全局方法

如果你完整引入了 Element,它會為 Vue.prototype 添加如下全局方法:$msgbox, $alert, $confirm 和 $prompt。因此在 Vue instance 中可以采用本頁面中的方式調用?MessageBox。調用參數為:

  • $msgbox(options)
  • $alert(message, title, options)?或?$alert(message, options)
  • $confirm(message, title, options)?或?$confirm(message, options)
  • $prompt(message, title, options)?或?$prompt(message, options)

?

單獨引用

如果單獨引入?MessageBox

import { MessageBox } from 'element-ui';

那么對應于上述四個全局方法的調用方法依次為:MessageBox, MessageBox.alert, MessageBox.confirm 和 MessageBox.prompt,調用參數與全局方法相同。

?

Options

參數說明類型可選值默認值
titleMessageBox 標題string
messageMessageBox 消息正文內容string / VNode
dangerouslyUseHTMLString是否將 message 屬性作為 HTML 片段處理booleanfalse
type消息類型,用于顯示圖標stringsuccess / info / warning / error
customClassMessageBox 的自定義類名string
callback若不使用 Promise,可以使用此參數指定 MessageBox 關閉后的回調function(action, instance),action 的值為'confirm'或'cancel', instance 為 MessageBox 實例,可以通過它訪問實例上的屬性和方法
showCloseMessageBox 是否顯示右上角關閉按鈕booleantrue
beforeCloseMessageBox 關閉前的回調,會暫停實例的關閉function(action, instance, done),action 的值為'confirm'或'cancel';instance 為 MessageBox 實例,可以通過它訪問實例上的屬性和方法;done 用于關閉 MessageBox 實例
lockScroll是否在 MessageBox 出現時將 body 滾動鎖定booleantrue
showCancelButton是否顯示取消按鈕booleanfalse(以 confirm 和 prompt 方式調用時為 true)
showConfirmButton是否顯示確定按鈕booleantrue
cancelButtonText取消按鈕的文本內容string取消
confirmButtonText確定按鈕的文本內容string確定
cancelButtonClass取消按鈕的自定義類名string
confirmButtonClass確定按鈕的自定義類名string
closeOnClickModal是否可通過點擊遮罩關閉 MessageBoxbooleantrue(以 alert 方式調用時為 false)
closeOnPressEscape是否可通過按下 ESC 鍵關閉 MessageBoxbooleantrue(以 alert 方式調用時為 false)
closeOnHashChange是否在 hashchange 時關閉 MessageBoxbooleantrue
showInput是否顯示輸入框booleanfalse(以 prompt 方式調用時為 true)
inputPlaceholder輸入框的占位符string
inputType輸入框的類型stringtext
inputValue輸入框的初始文本string
inputPattern輸入框的校驗表達式regexp
inputValidator輸入框的校驗函數。可以返回布爾值或字符串,若返回一個字符串, 則返回結果會被賦值給 inputErrorMessagefunction
inputErrorMessage校驗未通過時的提示文本string輸入的數據不合法!
center是否居中布局booleanfalse
roundButton是否使用圓角按鈕booleanfalse

?

轉載于:https://www.cnblogs.com/grt322/p/8564437.html

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

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

相關文章

什么是同軸電纜

同軸電纜從用途上分可分為基帶同軸電纜和寬帶同軸電纜&#xff08;即網絡同軸電纜和視頻同軸電纜&#xff09;。同軸電纜分50Ω 基帶電纜和75Ω寬帶電纜兩類。基帶電纜又分細同軸電纜和粗同軸電纜。基帶電纜僅僅用于數字傳輸&#xff0c;數據率可達10Mbps。同軸電纜(Coaxial Ca…

android textview表情,Android開發(16)-TextView顯示表情圖像和文字

從這個案例中我們可以學到當我們美化圖片美化界面的時候可以在某一區域輸入圖片和文字混搭信息,第三張圖片按比例縮小&#xff0c;第四張圖像有超鏈接布局文件MainActivity.javapackage com.example.textview3;import java.lang.reflect.Field;import android.os.Bundle;import…

Rating

題目鏈接 題意&#xff1a; 起始狀態是&#xff08;0。0&#xff09;&#xff0c;每次轉移的時候都是對兩個數中的較小的數操作。1&#xff09;以概率p轉向&#xff08;min&#xff08;a 50&#xff0c;1000&#xff09;。b&#xff09; 2&#xff09;以概率1-p轉向&#x…

linux的apache2.4限定某個目錄禁止解析PHP及user_agent與PHP相關配置

限定某個目錄禁止解析PHP 對于使用PHP語言編寫的網站&#xff0c;有一些目錄是有需求上傳文件的&#xff0c;比如服務器可以上傳圖片&#xff0c;并且沒有做防盜鏈&#xff0c;所以就會被人家當成了一個圖片存儲服務器&#xff0c;并且盜用帶寬流量。如果網站代碼有漏洞&#x…

什么是光纜

光纜(optical fiber cable)是為了滿足光學、機械或環境的性能規范而制造的&#xff0c;它是利用置于包復護套中的一根或多根光纖作為傳輸媒質并可以單獨或成組使用的通信線纜組件。光纜主要是由光導纖維&#xff08;細如頭發的玻璃絲&#xff09;和塑料保護套管及塑料外皮構成&…

js調用android播放器,js調用android本地方法

8種機械鍵盤軸體對比本人程序員&#xff0c;要買一個寫代碼的鍵盤&#xff0c;請問紅軸和茶軸怎么選&#xff1f;昨天自己錄了一個android本地調用h5中js方法&#xff0c;可能是因為視頻比較耗費流量&#xff0c;結果看的人不是很多&#xff0c;所以決定還是先寫文章&#xff0…

linux之分區的水深(標準分區方式)

1.首先創建boot分區(200M即可) boot分區作為linux啟動相關信息的存儲介質&#xff0c;不論boot分區什么時候&#xff0c;它都會排在整個硬盤的起始段&#xff0c;方便系統啟動獲取相關信息&#xff0c;用戶盡量不去更改boot分區的掛載點順序。 2.接著創建swap分區&#xff08;應…

doxygen相關問題

doxygen相關問題 我主要的設置有 現在 wizard對話框中大體設置下,然后 export設置: project->DOXYFILE_ENCODINGGBK project->OUTPUT_LANGUAGEchinese input->INPUT_ENCODINGGBK Dot->HAVE_DOT Dot-> UML_LOOK Dot->CALL_GRAPH Dot->CALLER_GRAPH http…

前端之JavaScript 02

一、函數 // 最基礎的函數定義 function f1() {console.log(hello world!); } f1(); // hello world!// 帶參數的函數 function f2(name,age) {console.log("姓名 : " name " 年齡&#xff1a;" age); } f2("jassin",18); // 姓名 : jassi…

什么是雙絞線

雙絞線&#xff08;twisted pair&#xff0c;TP&#xff09;是一種綜合布線工程中最常用的傳輸介質&#xff0c;是由兩根具有絕緣保護層的銅導線組成的。把兩根絕緣的銅導線按一定密度互相絞在一起&#xff0c;每一根導線在傳輸中輻射出來的電波會被另一根線上發出的電波抵消&a…

Android蒙版倒計時,【倒計時海報設計】- 虎課網

我們在大街上經常會看到各種宣傳海報&#xff0c;有時商家為了達到促銷的目的會在醒目的地方張貼一張倒計時海報&#xff0c;為的就是吸引群眾的眼睛&#xff0c;大家了解PS倒計時海報設計的制作過程嗎&#xff1f;如果對這方面操作不太了解的話&#xff0c;大家可以關注一下下…

linkit-smart-7688-feed 安裝筆錄

轉載于:https://www.cnblogs.com/orangezs/p/8571791.html

前端性能優化之性能測試

前端性能優化是一個很寬泛的概念&#xff0c;有很多教程都有前端性能優化的方法&#xff0c;這也是我們一直在關注的一件重要事情。配合各種方式、手段、輔助系統&#xff0c;前端優化的最終目的都是提升用戶體驗&#xff0c;改善頁面性能&#xff0c;我們常常竭盡全力進行前端…

模擬傳輸和數字傳輸的優缺點

與模擬數據通信相比較&#xff0c;數字數據通信具有下列優點&#xff1a; a. 來自聲音、視頻和其他數據源的各類數據均可統一為數字信號的形式&#xff0c;并通過數字通信系統傳輸 b. 以數據幀為單位傳輸數據&#xff0c;并通過檢錯編碼和重發數據幀來發現與糾正通信錯誤&am…

android瀏覽SD卡的文件,簡單實現瀏覽Android SD卡中的文件

----Main.javapublic class Main extends Activity {private TextView textView;private Button button;private ListView listView;public File currentParentFile;public File[] currentFiles;public static String sdcardDir ;static {try {//sd卡的路徑sdcardDir Environ…

Java線程狀態Jstack線程狀態BLOCKED/TIMED_WAITING/WAITING解釋

一、線程5種狀態 新建狀態&#xff08;New&#xff09; 新創建了一個線程對象。 就緒狀態&#xff08;Runnable&#xff09; 線程對象創建后&#xff0c;其他線程調用了該對象的start()方法。該狀態的線程位于可運行線程池中&#xff0c;變得可運行&#xff0c;等待獲取CPU的使…

彩票相關知識

很多人做夢都想中得彩票頭獎&#xff0c;很多人希望天上能掉下餡餅來砸中自己&#xff0c;很多人在作白日夢……彩票是一種風險投資&#xff0c;是一種四兩撥千斤的氣勢&#xff0c;更是一種眾人拾柴火焰高的真實寫照&#xff0c;沒買過彩票的人是很難體會那種美好的期望及期望…

(模擬信號/數字信號)分別以(模擬信號/數字信號)中傳輸方式

1、基本概念、基本術語和數據通信系統 1.基本概念和基本術語 數據&#xff1a;能夠由計算機處理的數字、字母和符號等具有一定意義的實體。 分類&#xff1a;模擬數據可以在一定的數據區域中取連續的值&#xff0c;如聲音和圖像&#xff1b;數字數據只能取離散的數值&#xff0…

C# 獲取文件名及擴展名

C#通過文件路徑獲取文件名 string fullPath "/WebSite1/Default.aspx";string filename System.IO.Path.GetFileName(fullPath);//文件名 “Default.aspx” string extension System.IO.Path.GetExtension(fullPath);//擴展名 “.aspx” string fileNameWithoutEx…

android11 rom,小米打造基于安卓11的ROM來了:米10嘗鮮

原標題&#xff1a;小米打造基于安卓11的ROM來了&#xff1a;米10嘗鮮據XDA報道&#xff0c;距離Android 11正式版發布還有幾天時間&#xff0c;9月8日正式面向Pixel 2、Pixel 3、Pixel 4和Pixel 3a等機型推送Android 11正式版。另一方面&#xff0c;各大手機品牌已經緊鑼密鼓開…