> 這篇文章會與大家分享 **SweetAlert2 彈跳視窗套件** 的相關使用說明。 > 關於 HTML 頁面的使用、以及 Vue3 在 Options API / Composition API 的使用都會一併分享給大家,那我們就開始吧! # SweetAlert2 當網頁有需要美觀又可客製化的彈跳視窗,第一首選我會推薦 **[SweetAlert2](https://sweetalert2.github.io/)**。 **[SweetAlert2](https://sweetalert2.github.io/)** 便於使用在各種情境,**不但 icon、文字、按鈕的顏色有提供客製化調整,連彈窗本身的主題顏色都是可以改變的**,幫助我們輕鬆提升網站風格一致性! ## HTML 頁面使用方式 ### 1. 安裝方式 透過 CDN 的方式新增於 ***HTML*** 檔案的 `<body></body>` 內: ```html <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script> ``` ### 2. 開始使用 方便展示,這邊直接將 `<script></script>` 新增在 ***HTML*** 檔案中: ```javascript Swal.fire({ title: 'Error!', text: 'Do you want to continue', icon: 'error', confirmButtonText: 'NO' }) ``` #### 完整程式碼 ![image](https://hackmd.io/_uploads/ryctXV90A.png) #### 完成後彈跳視窗 ![image](https://hackmd.io/_uploads/S1NyN4cA0.png) ## Vue CLI 使用方式 這部分主要分享 **Vue3** 搭配 **Vue CLI** 的操作,其中分為 **Options API / Composition API** 兩種撰寫方式給大家參考。 ### 1. 安裝方式 * 首先使用 **npm** 進行安裝,[參考文件](https://www.npmjs.com/package/vue-sweetalert2) ``` npm install -S vue-sweetalert2 ``` * 完成後回到 ***main.js*** 進行元件註冊 ```javascript import VueSweetalert2 from 'vue-sweetalert2'; import 'sweetalert2/dist/sweetalert2.min.css'; const app = createApp(App) app.use(VueSweetalert2); ``` ### 2. Options API - 開始使用 選擇要顯示彈窗的頁面進行設定,這邊我們以 ***HomeView.vue*** 為例: * 透過 `this.$swal()` 去包覆彈窗內容,這邊以基本會使用到的內容為例,若需更多彈窗內容可以參考[官方文件](https://sweetalert2.github.io/#configuration)。 ```html= <script> export default { methods: { showAlert () { this.$swal({ title: 'Warning!!!!', text: 'Do you want to continue', icon: 'warning', confirmButtonText: 'OK' }) } }, mounted () { this.showAlert() } } </script> ``` * 若是喜歡一行寫完的人,這裡也是可以進行縮寫沒問題的! ```html= <script> export default { methods: { showAlert () { this.$swal('Warning!', 'Do you want to continue', 'warning', 'OK') } }, mounted () { this.showAlert() } } </script> ``` #### 完成後彈跳視窗 ![image](https://hackmd.io/_uploads/HksRw490A.png) * 別忘了我們剛剛有提到樣式都是可以客製化的,這邊就直接來調整 **icon、文字、按鈕**的顏色: * 這邊透過 `color`、`iconColor`、`confirmButtonColor` 來進行相關顏色調整,若有更多客製需求都可以參考官方 [#Configuration Params](https://sweetalert2.github.io/#configuration) ```javascript this.$swal({ title: 'Warning!!!!', text: 'Do you want to continue', color: '#D57A66', icon: 'warning', iconColor: '#E9D985', confirmButtonText: 'OK', confirmButtonColor: '#6D9BA8' }) ``` #### 修改樣式後彈跳視窗 ![image](https://hackmd.io/_uploads/ry6pYN900.png) ### 2. Composition API - 開始使用 選擇要顯示彈窗的頁面進行設定,這邊我們以 ***HomeView.vue*** 為例: * 首先 ***import*** `Swal` 到 ***HomeView.vue*** * 接著透過 `Swal.fire()` 來新增彈跳視窗 * 這邊在 `onMounted()` 呼叫該彈窗,一進到頁面就可以看到 * 最後記得要 `return` ***showAlert*** ```html <script> import Swal from 'sweetalert2' export default { setup () { const showAlert = () => { Swal.fire({ title: 'Hello!', text: 'Welcome to my website', icon: 'success', confirmButtonText: 'continue' }) } onMounted(() => showAlert()) return { showAlert } } } </script> ``` #### 完成後彈跳視窗 ![image](https://hackmd.io/_uploads/B1CZzB5AA.png) 以上就是今天分享的 **SweetAlert2** 三種撰寫方式給大家參考!