Rails 7 將 Hotwire (Turbo & Stimulus) 用來取代 Turbolink 及 UJS
在談 Hotwire 之前,我們先來聊聊 Turbolink 及 UJS
在表單、連結物件上,自動加入data-屬性
轉換GET為其他方法,讓Rails執行
HTTP僅支援GET及POST方法
當我們在屬性中設定method="方法"時
Rails UJS會產生 _method
讓Rails知道你要執行什麼方法
data confirm防呆確認
data-confirm屬性會生出一個警告框,在觸發時讓使用者二度確認
防止雙點擊
使用 disable_with 來防止儲存時雙重點擊狀況,避免HTTP傳送多次request,導致伺服器當機的狀況
Turbo 分成三部分:
Stimulus:
為 JS 框架,無需另外設定監聽事件、監聽目標,直接在 HTML 屬性中指定事件及目標,就能抓到並且觸發
web小辭典
SPA: Single Page Application
單頁式頁面,使用 AJAX 方式讓網頁回應更即時,且無需換頁
使用者第一次載入頁面時,就會將網站所有資訊載入,因此只需要在同一頁面就能瀏覽到所有資訊