Simple Twitter 工具應用.解決問題

PINPIN
Oct 2, 2021

--

規格說明:
使用者進行相關操作時,會跳出toast訊息來提示使用者操作的結果。
AC也有另外提供UI的設計樣式:

PR 網址:
https://github.com/WilliamTsou818/simple-twitter-frontend/pull/72
https://github.com/WilliamTsou818/simple-twitter-frontend/pull/73

詳細狀況敘述

  • 問題的起源:

一開始我們是根據教案的方式一樣直接使用sweetalert2的套件來做提示,也沒有依照 AC提供的UI樣式。後來再進行細部的調整時,後端的組員有提到他們有修改error回傳的格式,error message的部分會同時回傳多個message,因此詢問前端toast的提示是否也會顯示多個提示

所以我們有先去確認sweetalert2是否本身有支援這個功能,後來在github的issues裡查到他們並不打算支援這個功能。所以開始決定尋找其他的套件進行替換

  • 套件的選擇:

在開始進行套件的選擇之前,也有考慮過自己嘗試寫一個toast的功能,不過後來覺得現在線上已經有很多種套件可以使用,如果我在時間有限的情況之下自己實作,做出來的成果及品質一定不會比較好。因此開始Google關鍵字進行各種套件的查詢。

後來在看了很多種套件的demo以及簡單看過文件之後,我自己選擇的是 vue-toastification 這個套件。選擇這個套件的原因除了滿足我們最基本的要求 “可以同時有多個toast提示” 之外,我認為他提供的客製化選擇比較多,因此也滿足了讓我們遵照AC提供的UI樣式來製作的需求。
再告知另一位前端夥伴Hugh我的看法以及選擇的套件之後,他也覺得可以使用,我就開始進行基本的toast設定。

  • 實作的情況:

一開始我是先把github上的官方文件先看過一次,大概的了解有哪些東西可以使用、設定。接著是利用開發者提供的live demo 來快速的選定我想要的基本toast動畫

接著比較困難的是使用自定義的toast樣式,這部分github文件也寫得很清楚,只是一開始看不太懂怎麼使用,還有.Vue-Toastification__toast-body 和 .Vue-Toastification__toast-component-body的差別到底是在哪裡。後來是實際在使用的時候,邊看畫面的變化,慢慢地就懂了一個是使用在單純string的情況,一個是使用在自訂component的情況下。

而因為AC是有提供UI的樣式的,所以我自己是使用自訂的component的方式來顯示toast,這一部分主要也是參考文件另外再搭配參數來顯示對應的狀態

最後為了方便使用,我是把設定好的功能包裝進src/utils/mixins.js 裡面,讓另一位前端夥伴可以快速地直接套用。等確定toast顯示的部分,前後端的夥伴都覺得沒有問題時,才一併把原本的 sweetalert2 更換成使用 vue-toastification。

--

--