第一部分 – 靜態 GET 處理器
從介面中可以看到,我們的提醒應用程式正在嘗試發出 API 請求以獲取資料,但請求失敗了。
這是因為我們的應用程式沒有可通訊的 API 伺服器。讓我們使用 Mirage 來模擬失敗的 API 請求。
在您的編輯器中開啟 src/server.js
檔案,從 miragejs
匯入 createServer
,並匯出一個預設函式,該函式會建立一個新的伺服器
// src/server.js
import { createServer } from "miragejs"
export default function () {
createServer()
}
我們會在 index.js
中為您匯入並執行此函式,但在您自己的應用程式中,您可以隨意設定。
回到應用程式,如果您開啟 JavaScript 主控台,您應該會看到來自 Mirage 的錯誤
Mirage:您的應用程式嘗試 GET '/api/reminders',但沒有定義任何路由來處理此請求。
這表示 Mirage 正在執行,並且提醒應用程式正在發出一個尚未模擬的 GET 請求。
我們可以使用 routes()
鉤子來模擬它。複製反白顯示的程式碼來更新您應用程式中的伺服器
import { createServer } from "miragejs"
export default function () {
createServer({
routes() {
this.get("/api/reminders", () => ({
reminders: [],
}))
},
})
}
routes()
鉤子是我們定義路由處理器的方式,而 this.get()
方法可讓我們模擬 GET 請求。第一個引數是我們正在處理的 URL(/api/reminders
),第二個引數是一個函式,該函式會以一些資料回應我們的應用程式。
您應該會看到應用程式重新載入,然後呈現一則訊息,顯示「全部完成!」
開啟主控台,您會看到 Mirage 以 200 狀態碼和來自我們處理器的物件處理了請求。
讓我們在回應中新增一些資料
createServer({
routes() {
this.get("/api/reminders", () => ({
reminders: [
{ id: 1, text: "Walk the dog" },
{ id: 2, text: "Take out the trash" },
{ id: 3, text: "Work out" },
],
}))
},
})
應用程式現在會呈現此資料。
恭喜 – 您剛剛撰寫了您的第一個 Mirage 路由處理器!
重點
- Mirage 在瀏覽器中執行,因此沒有新的終端機程序需要管理
- 從 Mirage 傳回資料就像撰寫前端程式碼一樣快速又簡單
- 您永遠不會變更您的應用程式程式碼以取用來自 Mirage 的資料 – 您的應用程式會認為它正在與真實網路通訊