使用 Mirage 開發 Next.js 頁面

直接在 Next.js 應用程式的頁面中模擬用戶端 API 請求,讓您無需任何後端服務即可繼續進行本機開發。

請注意:目前,Mirage 僅在瀏覽器中運行,這表示它不會模擬 Next.js 應用程式透過 getServerSideProps 之類的 hook 發出的任何伺服器端網路呼叫。

步驟 1:安裝 Mirage

首先,請確定您已將 Mirage 加入您的專案中

# Using npm
npm install --save-dev miragejs

# Using Yarn
yarn add --dev miragejs

步驟 2:在頁面中建立伺服器

在頁面檔案中,從 Mirage 導入 Server,建立伺服器,然後開始模擬程式碼需要的 API 端點

// pages/index.js
import { useState, useEffect } from "react"
import { createServer } from "miragejs"

createServer({
  routes() {
    this.get("/api/movies", () => ({
      movies: [
        { id: 1, name: "Inception", year: 2010 },
        { id: 2, name: "Interstellar", year: 2014 },
        { id: 3, name: "Dunkirk", year: 2017 },
      ],
    }))
  },
})

export default function Index() {
  let [movies, setMovies] = useState([])

  useEffect(() => {
    fetch("/api/movies")
      .then((res) => res.json())
      .then((json) => {
        setMovies(json.movies)
      })
  }, [])

  return (
    <ul>
      {movies.map((movie) => (
        <li key={movie.id}>
          {movie.name} ({movie.year})
        </li>
      ))}
    </ul>
  )
}

現在您可以繼續開發您的頁面,並使用 Mirage 模擬您的後端 API 端點。

請注意:您一次只能實例化一個 Mirage Server,因此如果您想要在多個頁面之間共用您的模擬程式碼,請查看關於集中和共用 Mirage 伺服器的指南。